我可以使用二进制软件包在站点范围内安装pysvn。例如,在Ubuntu中:
$ sudo apt-get install python-svn
或者,在Windows上,我可以使用.exe安装程序安装整个站点。
在虚拟世界之外,我能做到
$ python -c "import pysvn; print 'ok'"
ok
现在我创建一个virtualenv(使用virtualenvwrapper包中的mkvirtualenv
命令)
$ mkvirtualenv test1
但是由于virtualenv默认不导入全局站点包,因此我不能在这个virtualenv中使用pysvn。
(test1)$ python -c "import pysvn; print 'ok'"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named pysvn
如何在不启用全局站点包的情况下访问virtualenv中的pysvn?
有很多方法可以处理这个问题。
选项0
允许从virtualenv中访问全局站点包。创建虚拟环境时,将
--system-site-packages
选项传递给virtualenv
。或者,使用
toggleglobalsitepackages
命令(来自virtualenvwrapper)允许访问全局站点包。选择1
使用easy_install使用二进制安装程序将软件包安装到virtualenv中。例如,在Windows上,进程可能如下所示:
easy_install example_installer.msi
通过双击并在gui模式下运行安装程序(然后使用Windows“添加/删除程序”控制面板进行调整),验证是否可以在站点范围内安装安装程序。如果可以在站点范围内安装,那么easy_install可能会将其安装到virtualenv中。
但是,pysvn二进制安装程序的结构不适合轻松安装。如果使用Windows pysvn二进制安装程序尝试此操作,则会出现以下错误:
选择2
使用virtualenvwrapper中的
add2virtualenv
命令。这将向virtualenv的site packages目录中添加一个.pth文件,使virtualenv可以访问指定的目录。请注意,必须指定父目录,而不是指定包。也就是说,而不是
应该是
看这个问题:add2virtualenv (virtualenv wrapper) does not work with scipy
要查找安装包的目录,请执行以下操作:
问题是,这包括指定目录中的所有包,而不仅仅是pysvn。所以,它和
toggleglobalsitepackages
有相同的缺点。选择3
将中的安装目录符号链接到virtualenv的站点包。
到达virtualenv的site packages目录的一个方便方法是使用virtualenvwrapper's
cdsitepackages
命令摘要
在Windows上,尝试选项1(从二进制安装程序轻松安装)。如果失败,请全局安装并允许virtualenv通过使用virtualenvwrapper-win's
toggleglobalsitepackages
命令或将--system-site-packages
选项传递给virtualenv来访问它。在支持符号链接的系统(如Linux和OS X)上,使用选项3。它允许您访问所需的特定包,而不允许访问整个全局站点包。
相关问题 更多 >
编程相关推荐