我在一个存储库中有一个python项目,它需要从其他存储库导入一些类。
因为它们是不同的存储库,所以它们需要保持在同一目录级别。
repos
|- my_project
|- main.py
|- foo_folder
|- foo.py
|- bar_folder
|- bar.py
在
myproject/main.py
Foo_Class
从
foo_folder/foo.py
Bar_Class
bar_folder/bar.py
.
import sys
sys.path.insert(0, '../foo_folder')
sys.path.insert(0, '../bar_folder')
那我就可以了
from foo_folder.foo import Foo_Class
from bar_folder.bar import Bar_Class
PEP8: module level import not at top of file
我还可以在我的_项目中创建一个foo的快捷方式和一个bar的快捷方式,这样系统会将这些模块视为子文件夹。
不过,这看起来又像一个黑客,我将不得不添加这个快捷方式
.gitignore
我不知道为什么,但如果我复制foo文件夹并命名它
copy_of_foo_folder
然后我可以导入它,但是如果我创建了foo的快捷方式,我就不能导入。
|- my_project
|- shortcut_to_foo_folder
|- copy_of_foo_folder
|- main.py
from copy_of_foo_folder.foo import Foo # WORKS
from shortcut_to_foo_folder.foo import Foo # FAILS
ModuleNotFoundError: No module named 'shortcut_to_foo_folder'