Ηλί*_*ίας 10 python directory-structure
在我的python项目中共享实用程序模块的最佳目录结构策略是什么?由于常用模块将使用新函数进行更新,我不希望将它们放在python安装目录中.
project1/
project2/
sharedUtils/
Run Code Online (Sandbox Code Playgroud)
从project1我不能使用"import ..\sharedUtils",还有其他方法吗?我宁愿不对"sharedUtils"位置进行硬编码
提前致谢
制作一个单独的独立包装?把它放在你的python安装的/ site-packages中?
在开发模式方面,我个人也很喜欢:使用符号链接和/或*.pth文件.
目录结构:
project1/foo.py
sharedUtils/bar.py
Run Code Online (Sandbox Code Playgroud)
使用您显示foo.py的project1目录,您可以从目录内部添加相对路径,sharedUtils如下所示:
import sys
sys.path.append("../sharedUtils")
import bar
Run Code Online (Sandbox Code Playgroud)
这避免了对C:/../sharedUtils路径进行硬编码,并且只要您不更改目录结构就可以工作。
假设你有sharedUtils/utils_foo和sharedUtils/utils_bar.您可以编辑PYTHONPATH以包含sharedUtils,然后将其导入project1并project2使用
import utils_foo
import utils_bar
etc.
Run Code Online (Sandbox Code Playgroud)
在linux中,您可以使用以下内容编辑〜/ .profile:
PYTHONPATH=/path/to/sharedUtils:/other/paths
export PYTHONPATH
Run Code Online (Sandbox Code Playgroud)
使用PYTHONPATH环境变量会影响python在查找模块时搜索的目录.由于每个用户都可以设置自己的PYTHONPATH,因此该解决方案适用于个人项目.
如果您希望计算机上的所有用户都能够导入模块sharedUtils,那么您可以通过使用.pth文件来实现此目的.你放置.pth文件的确切位置可能取决于你的python发行版.见
http://bob.pythonmac.org/archives/2005/02/06/using-pth-files-for-python-development/
| 归档时间: |
|
| 查看次数: |
2528 次 |
| 最近记录: |