开发库模块时设置Python路径
我正在开发一个库和一个在Python2.6中使用该库的应用程序。我在“站点包”中放置了一个“mylib.pth”文件,这样我就可以开发库模块时设置Python路径,python,Python,我正在开发一个库和一个在Python2.6中使用该库的应用程序。我在“站点包”中放置了一个“mylib.pth”文件,这样我就可以从我的应用程序中导入mylib 我使用的是DVCS,所以当我想修复bug或向库中添加功能时,我会创建存储库的一个分支,并在该分支中工作。为了使用我对库所做的更改来测试我的应用程序,我在“mylib.pth”中编辑路径以指向新的开发分支 如果我的库中有几个并行分支同时运行,这会变得有点乏味。在测试之前,我必须不断编辑“mylib.pth”文件,以确保根据库的正确版本进行
从我的应用程序中导入mylib
我使用的是DVCS,所以当我想修复bug或向库中添加功能时,我会创建存储库的一个分支,并在该分支中工作。为了使用我对库所做的更改来测试我的应用程序,我在“mylib.pth”中编辑路径以指向新的开发分支
如果我的库中有几个并行分支同时运行,这会变得有点乏味。在测试之前,我必须不断编辑“mylib.pth”文件,以确保根据库的正确版本进行测试。当我调用我的应用程序时,有没有一种方法可以使用当前路径(即我当前所在的库的开发分支)来设置库路径,而不是使用全局“站点包”目录中的“mylib.pth”?根据描述:
假设您有一个应用程序
需要LibFoo的版本1,但需要另一个版本
应用程序需要版本2。怎么
您能同时使用这两种应用程序吗?
如果你把所有东西都安装到
/usr/lib/python2.4/site-packages(或
不管你的平台标准是什么
位置是),很容易在一个
你无意中
升级不应该升级的应用程序
要升级
建议阅读:。它解决了Python应用程序开发和部署中的许多问题。如果您使用setuptools,那么您可以在工作树中说
setup.py develop
,它将为您执行.pth文件操作。当然,您可以更改sys.path
以添加当前目录(或其子目录)到搜索路径site.addsitedir
是一个很好的方法。由于您将从Python执行此操作,因此您可以使用任何类型的逻辑来决定添加哪个目录;您可以基于os.path.normpath
如果当前目录看起来像一个分支,请单击它,或者在光盘上查找最新的分支,或者其他内容
你可以把这个代码放在<代码> StestCuuStudio.Py < /Cult>模块或其他启动触发的位置。
你也可以考虑使用。它允许您使用自定义的python路径创建入口点。
我将我的PYTHONPATH
设置为指向最新和最好的版本。禁止编辑
export PYTHONPATH=.:/the/new/version
这似乎很好地解决了我的问题。我在我的库的开发分支中运行了“virtualenv”,它创建了“Lib”和“Scripts”子目录。我在“./Lib/site packages”目录中添加了一个修改过的“.pth”文件。然后,要使用我的库的开发版本调用我的应用程序,我运行“/Scripts/python myApp.py”我目前没有使用setuptools,但这看起来也是一个非常简单的解决方案。我将研究如何使用setuptools。