如果您的工作目录在内部asd
,则需要一个名为bgr
inside 的模块asd
。在pycharm中,您的工作目录位于test_me
外部asd
,这就是它起作用的原因。
只需转到test_me
目录并键入:
python asd/one.py
它应该工作
另一种选择是添加bgr
到PYTHONPATH
环境变量。然后bgr
可以从任何地方导入。
编辑:
您也可以使用相对导入。
from ..bgr import two
然而,这才能运行要求,你是里面asd
(它不会工作test_me
)。从运行脚本的位置而不是从导入脚本的位置搜索模块。
有一种变通办法可以使其在两个位置均适用:
try:
from bgr import two
except ModuleNotFoundError:
from ..bgr import two
不过,这仅适用于这两个位置(内部test_me
和内部test_me/asd
)。在其他任何地方都无法使用。
有两种解决方法可以使其在任何位置都可以使用,例如在stript内部更改cwd(例如,使用os.chdir()
)或通过PYTHONPATH
在脚本内部更改while(例如,sys.path.append()
),但不建议这样做,因为它们仅适用于仅在您不更改计算机位置的情况下。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句