在我的应用程序中,我想使用:
packageA
,这需要 packageX==1.3
packageB
,这需要 packageX==1.4
packageX==1.5
如何安装packageX
带pip的多个版本来处理这种情况?
e-s*_*tis 47
pip对此没有帮助.
您可以告诉它安装特定版本,但它会覆盖另一个版本.另一方面,使用两个virtualenvs可以让你在同一台机器上安装这两个版本,但不能同时使用它们.
最好的办法是手动安装这两个版本,方法是将它们放在Python路径中,并使用不同的名称.
但是如果你的两个库希望它们具有相同的名称(并且它们应该),则必须修改它们,以便它们使用一些导入别名来获取它们所需的版本,例如:
import dependencyname_version as dependencyname
Run Code Online (Sandbox Code Playgroud)
目前还没有干净的方法来做到这一点.你希望最好的办法是让这个黑客工作.
我宁愿抛弃两个库中的一个并用等效的替换它,或者修补它以接受新版本的依赖项并将补丁返回给社区.
sAg*_*aga 13
下载ea的源代码.包.将每个安装在自己的单独文件夹中.例如.我有1.10版本的软件包,但是想要切换到dev版本进行一些工作.我下载了dev模块的源代码:
git clone https://github.com/networkx/networkx.git
cd netwokrx
我为这个版本创建了一个文件夹:
mkdir /home/username/opt/python
,然后我将PYTHONPATH env var设置为:export PYTHONPATH=/home/username/opt/python/lib/python2.7/site-packages/
.接下来,我用以下方法安装它:python setup.py install --prefix=/home/username/opt/python
现在,由于我的PYTHONPATH现在指向其他site-packages文件夹,当我在命令行上运行python并导入新模块时,它可以工作.要切换回切换,请从PYTHONPATH中删除新文件夹.
>>> import networkx as nx
>>> nx.__version__
'2.0.dev_20151209221101'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24523 次 |
最近记录: |