gpt4 book ai didi

python - 在虚拟环境中安装 pysvn

转载 作者:太空狗 更新时间:2023-10-29 21:39:51 28 4
gpt4 key购买 nike

我可以使用二进制包在站点范围内安装 pysvn。例如,在 Ubuntu 中:

$ sudo apt-get install python-svn

或者,在 Windows 上,我可以使用 .exe 安装程序在站点范围内安装。

在 virtualenv 之外,我可以这样做

$ 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 )允许访问全局站点包。

(test1)$ toggleglobalsitepackages
Enabled global site-packages
(test1)$ python -c "import pysvn; print 'ok'"
ok

(test1)$ toggleglobalsitepackages
Disabled global site-packages
(test1)$ python -c "import pysvn; print 'ok'"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named pysvn

选项1

使用 easy_install 通过二进制安装程序将包安装到 virtualenv 中。例如,在 Windows 上,该过程可能如下所示:

  1. 下载二进制安装文件。在此示例中,我们将其称为 example_installer.msi(或 example_installer.exe)
  2. 激活 virtualenv(我在 Windows 上使用 virtualenvwrapper-win)
  3. easy_install example_installer.msi

通过双击并在 gui 模式下运行安装程序(然后使用 Windows 添加/删除程序控制面板卸载),验证您是否可以在站点范围内安装安装程序。如果您可以在站点范围内安装它,那么 easy_install 可能可以将它安装到 virtualenv 中。

但是,pysvn 二进制安装程序的结构不适合 easy_install。如果您使用 Windows pysvn 二进制安装程序尝试此操作,您会收到此错误:

error: py27-pysvn-svn185-1.7.9-1572.exe is not a valid distutils Windows .exe

选项 2

使用 virtualenvwrapper 中的 add2virtualenv 命令.这会将一个 .pth 文件添加到 virtualenv 的站点包目录,从而使 virtualenv 可以访问指定的目录。

注意必须指定父目录,而不是具体的包。也就是说,而不是

add2virtualenv /usr/lib/python2.7/dist-packages/pysvn

应该是

add2virtualenv /usr/lib/python2.7/dist-packages

看到这个问题:add2virtualenv (virtualenv wrapper) does not work with scipy

要查找安装包的目录,请执行以下操作:

$ python
>>> import pysvn
>>> pysvn.__file__
'/usr/lib/python2.7/dist-packages/pysvn/__init__.pyc'

问题是,这包括指定目录中的所有包,而不仅仅是 pysvn。因此,它具有与 toggleglobalsitepackages 相同的缺点。

选项3

将安装目录符号链接(symbolic link)到 virtualenv 的站点包。

进入 virtualenv 站点包目录的便捷方法是使用 virtualenvwrapper's cdsitepackages 命令

cdsitepackages
ln -s /usr/lib/python2.7/dist-packages/pysvn pysvn

总结

在 Windows 上,尝试选项 1(从二进制安装程序轻松安装)。如果失败,全局安装并允许 virtualenv 使用 virtualenvwrapper-win's 访问它toggleglobalsitepackages 命令,或者通过将 --system-site-packages 选项传递给 virtualenv。

在支持符号链接(symbolic link)的系统上,例如 Linux 和 OS X,使用选项 3。它允许您访问您需要的特定包,而不允许访问整个全局站点包。

关于python - 在虚拟环境中安装 pysvn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25984095/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com