Python 如何从调用my.py脚本的文件夹中导入文件?
我目前正在开发一个python包,希望将其上传到pypi 将来,其他开发人员将通过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的文件,即/
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可以导入和使用的本地设置文件。如果我在包脚本中使用相对导入,那么它将尝试根据在用户系统上的安装位置执行相对导入,对吗?因此,没有硬编码的方法来从包安装路径相对导入到项目路径,因为项目路径总是因用户而异。我这里有什么不对劲吗?