我目前正在处理要上传到pypi的python软件包。
将来,其他开发人员将通过pip install
安装此软件包,然后使用import name_of_package
将其加载到他们的.py文件中。
为了正常运行,我的python程序包需要从导入该文件夹的同一文件夹中导入另一个.py文件。
因此,我们假设有人在/documents/python/some_project/
中工作,并且他将我的软件包导入了他的main.py
脚本中。然后,我的打包脚本将在secondary.py
所在的同一文件夹(即main.py
中搜索名为/documents/python/some_project/
的文件,然后将secondary.py
导入打包脚本。
如何在包脚本中编写此导入语句?
答案 0 :(得分:0)
经典方法是使用相对导入;
from .other_module import foo_function
from .other_module import BarClass
请参阅Python文档中的The import statement。
您还可以查看importlib.import_module。
但是,在您的特定情况下,您想要调用可能位于用户目录中任何位置的外部Python脚本。
为此,您可以使用exec函数。但是,请确保您正在调用的代码是安全代码。
使用pip install
时,已安装的软件包存储在用户的virtualenv中;不在用户的源目录中。我想您也对此感到困惑。