我在一个单独的文件夹中有两个python项目。我也有一个共同的代码,我在我的两个项目中使用。
在文件系统上组织它们以使用distutils和setup.py构建它们的最佳方法是什么?
我的第一个想法是使用这样的结构:
workspace
|
|- common lib
| |
| `- ...
|
|- project 1
| |
| |- ...
| `- setup.py
|
`- project 2
|
|- ...
`- setup.py
并修改项目中的python路径环境变量以查找代码,但是当我编写setup.py文件时遇到了问题。如果我选择公共包的相对路径(.. \ common lib),则distutils会将常用的lib文件放在存档之外。
有没有什么好的做法可以同时放置可重用的代码和构建项目?
谢谢!
答案 0 :(得分:0)
我会查看python的分发工具(start here)。您可以将每个项目设置为自己的独立包,然后像在任何其他python包中一样在您的计算机上安装每个包。此外,您可以在本地计算机上对包进行符号链接,这样,如果您的项目是相互依赖的,项目A中的任何更改都可以立即被其他项目中的代码访问,而无需在进行更改后重新安装项目A. / p>
一般而言,将事物分开会使管理变得更容易。
虽然知道这些项目是什么会有所帮助。它们都是您正在编写的独立库或应用程序吗?
答案 1 :(得分:0)
package_dir
中的distutils/setup-tools
选项可以在分发树中与源树不同的位置插入一个包(在您的情况下为common_lib
)(https://docs.python.org/2/distutils/setupscript.html#listing-whole-packages })。
但据我所知,这只能在创建二进制发行版时正常工作(setup.py bdist);我在这里遇到了这个问题:Inconsistent behaviour of bdist vs sdist when distributing a Python package。