在python项目中共享实用程序模块
-
10-07-2019 - |
题
在我的python项目中共享实用程序模块的最佳目录结构策略是什么?由于常用模块将使用新函数进行更新,我不希望将它们放在python安装目录中。
project1/
project2/
sharedUtils/
从project1我不能使用<!>“; import .. \ sharedUtils <!>”,还有其他方法吗?我宁愿不硬编码<!> quot; sharedUtils <!>位置
提前致谢
解决方案
制作单独的独立包装?并将它放在你的python安装的/ site-packages中?
在开发模式方面,我个人也很喜欢:使用符号链接和/或*.pth
文件。
其他提示
假设您有sharedUtils/utils_foo
和sharedUtils/utils_bar
。
您可以编辑PYTHONPATH以包含sharedUtils
,然后使用
project1
和project2
中导入它们
import utils_foo
import utils_bar
etc.
在linux中,您可以使用以下内容编辑〜/ .profile:
PYTHONPATH=/path/to/sharedUtils:/other/paths
export PYTHONPATH
使用PYTHONPATH环境变量会影响python在查找模块时搜索的目录。由于每个用户都可以设置自己的PYTHONPATH,因此该解决方案适用于个人项目。
如果您希望机器上的所有用户都能够导入.pth
中的模块,那么
您可以使用<=>文件来实现此目的。您放置<=>文件的确切位置可能取决于您的python发行版。看到
http://bob.pythonmac。组织/档案馆/ 2005/02/06 /使用-PTH-文件换蟒蛇开发/
目录结构:
project1/foo.py
sharedUtils/bar.py
使用您显示的目录,从foo.py
目录中的project1
,您可以添加sharedUtils
的相对路径,如下所示:
import sys
sys.path.append("../sharedUtils")
import bar
这可以避免对C:/../sharedUtils
路径进行硬编码,并且只要您不更改目录结构就可以正常工作。
不隶属于 StackOverflow