作者VivianAnn (薇薇安安)
看板Python
标题Re: [问题] 如何import所有来自指定目录的module
时间Thu Apr 7 15:59:21 2022
※ 引述《blc (Anemos)》之铭言:
: 我在推文给了错误方法,只好再想一个
: containers/__init__.py:
: import os
: __all__ = [i.replace(".py","") for i in os.listdir(__path__[0]) ]
: from . import *
: main.py:
: import containers
: t1 = containers.module1.Test1(6)
: t1.test1()
: 如果要去掉module1那层大概得找其他方法...
: ※ 引述《VivianAnn (薇薇安安)》之铭言:
: : 各位好,以下是本人要处理的档案
: : main.py
: : containers
: : /module1.py
: : /module2.py
: : /module3.py
: : module1, 2, 3中的程式码类似,皆如下:
: : class Test1(self):
:
: : def __init__(self, num):
: : self.num = num
: : def test1(self):
: : print("test1")
谢谢blc和lycantrope两位高手提供的方法,我在本地测试都可以用,但在公司的远端
Linux主机就不行了,会出现
ModuleNotFoundError: No module named 'containers'
查了一下stackoverflow,我的理解是必须将本工作目录加到PYTHONPATH, 像是
export PYTHONPATH="${PYTHONPATH}:/path/to/your/project/"
或是有另一招sys.path,sys.path.append("/path/to/your/project/"), 但比较不推荐
想请问版友们都怎麽做
另外我目前有个运行docker container的指令(docker run....),不知能不能将
export PYTHONPATH 的指令也一并放入docker container中
将问各位版有有遇到这样的问题吗?
问题写得有点赶,请多包涵,之後还会再补充的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 108.254.89.199 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1649318363.A.98D.html
1F:→ mikemike1021: 可以用 docker run ... bash -c 'export ...; 原先 04/08 03:49
2F:→ mikemike1021: 的指令' ;或者可以把 PYTHONPATH 弄出来 加上去後 04/08 03:49
3F:→ mikemike1021: 再用 docker run -e PY... 设定;又或者自己弄 imag 04/08 03:49
4F:→ mikemike1021: e 时设定好 04/08 03:49