有一个名为Importing files from different folder的流行Python问题。
但最重要的答案是提到向“some_file.py”添加内容,这显然只适用于该文件中的导入。
如果我想在项目范围内指定要导入的其他目录怎么办?
我不想修改PYTHONPATH,因为我相信每个项目的解决方案更清晰。
我不想为此使用python包,因为我觉得它们可能只是复杂的东西。例如。也许每次我对其他文件夹中的代码进行更改时,我都需要手动将.py文件重新编译为.pyc文件。
答案 0 :(得分:1)
如果我想在项目范围内指定要导入的其他目录怎么办?
Create a regular package with setup.py
并使用-e
选项安装它:
python -m pip install -e /path/to/dir_with_setup_py/
-e, - editable从本地项目以可编辑模式安装项目(即setuptools“develop mode”) 路径或VCS网址。
现在,只要您更新代码,就会在导入时使用新版本 没有重新安装任何东西。
sys.path
您可以根据需要动态地将任意目录添加到Python包的搜索路径中。将其作为您执行的第一行代码:
import sys
sys.path.append('my/path/to/my/file1')
sys.path.append('my/path/to/my/file2')
或者找到第一个:
sys.path.insert(0, 'my/path/to/my/file1')
sys.path.insert(0, 'my/path/to/my/file2')
现在文件:
my/path/to/my/file1/myscript1.py
my/path/to/my/file2/myscript2.py
可以导入项目中的任何位置:
import myscript1
import myscript2
只要此Python进程正在运行,就不需要再次修改sys.path
。