Python 如何从调用my.py脚本的文件夹中导入文件?

Python 如何从调用my.py脚本的文件夹中导入文件?,python,Python,我目前正在开发一个python包,希望将其上传到pypi 将来,其他开发人员将通过pip install安装这个包,然后使用import name\u of_package将它加载到他们的.py文件中 为了正常工作,我的python包需要从导入到的同一文件夹中导入另一个.py文件 假设有人在/documents/python/some_project/中工作,他将我的包导入到他的main.py脚本中。然后,我的包脚本将在main.py所在的同一文件夹中搜索名为secondary.py的文件,即/

我目前正在开发一个python包,希望将其上传到pypi

将来,其他开发人员将通过
pip install
安装这个包,然后使用
import name\u of_package
将它加载到他们的.py文件中

为了正常工作,我的python包需要从导入到的同一文件夹中导入另一个.py文件

假设有人在
/documents/python/some_project/
中工作,他将我的包导入到他的
main.py
脚本中。然后,我的包脚本将在
main.py
所在的同一文件夹中搜索名为
secondary.py
的文件,即
/documents/python/some_project/
,然后将
secondary.py
导入包脚本


如何在包脚本中编写此导入语句?

经典方法是使用相对导入

from.other_模块导入foo_函数
from.other_模块导入BarClass
请参见Python文档中的

你也可以看看

但是,在您的特定情况下,您希望调用可能位于用户目录中任何位置的外部Python脚本

为此,可以使用函数。但是,确保你调用的代码是安全代码


使用
pip install
时,已安装的软件包存储在用户的目录中;不在用户的源目录中。我想你也会被这一点弄糊涂。

为什么这个文件不包含在你的软件包中?因为每个用户都会有不同的文件。用户可以在
secondary.py
中定义一些样式,然后我的软件包需要导入这些样式才能正常工作。您应该看看如何,这有点复杂,但本质上用户必须设置一个环境变量,该变量对应于django可以导入和使用的本地设置文件。如果我在包脚本中使用相对导入,那么它将尝试根据在用户系统上的安装位置执行相对导入,对吗?因此,没有硬编码的方法来从包安装路径相对导入到项目路径,因为项目路径总是因用户而异。我这里有什么不对劲吗?