问题标签 [virtualenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
7146 浏览

python - 如何为不同的 Perl 应用程序安装专门的环境?

在功能方面是否有与 Python 的virtualenv等效或接近的东西,但对于 Perl?

我已经在 Python 中进行了一些开发,并且可以将非系统版本的模块安装在单独的环境中而不会造成任何混乱,这是一个巨大的优势。现在我必须在 Perl 中处理一个新项目,并且我正在寻找类似 virtualenv 的东西,但是对于 Perl。你能建议任何 Perl 等效或替代 python 的 virtualenv 吗?

我正在尝试为要部署的 Y 个不同应用程序设置 X 个不同的非系统 Perl 包集。更糟糕的是,这些应用程序可能需要同一包的不同版本,因此它们中的每一个都可能需要安装在单独的模块/库环境中。对于 X < Y < 3,您可能希望手动执行此操作。但对于 10 > Y > X,您不应该手动执行此操作。

理想情况下,我正在寻找的应该是这样的:

0 投票
4 回答
33845 浏览

python - virtualenv、mysql-python、pip:有人知道怎么做吗?

我正在尝试在 virtualenv 中安装 mysql 绑定。我更喜欢使用 pip 或 easy_install。pip 给我以下错误:

easy_install 要么从 sourceforge 获得 404,要么给我一个非常相似的错误。

有谁知道如何在 virtualenv 中解决这个问题?

0 投票
5 回答
11423 浏览

python - 不要碰我的shebang

我讨厌distutils的一件事(我猜他是这样做的邪恶)是它改变了 shebang 线。换句话说,更理性和环境变量决定经文

神奇地转换成

这在 grok 中也可以看到:我在 virtualenv 中使用 grokproject 来启动我的项目,但现在我不能再移动开发目录了,因为它将绝对路径放在 shebang 指令中。

我问这个的原因是双重的

  • 我想移动它,因为我开始在一个目录(实验)中开发,现在我想将它移动到正确的路径,但我做不到。所以我创建了一个新的 virtualenv 和 grokproject 并复制了我的文件。这解决了这个问题,但让我对更合理的解决方案的好奇心得不到满足。特别是,如果对 virtualenv python 解释器的引用是相对的,那么问题一开始就不会出现。你知道virtualenv的布局,你可以很容易地参考virtualenv python。
  • 第二个原因是我希望能够将 virtualenv scp 到另一台计算机并在那里运行它而不会遇到麻烦。如果您有硬编码的路径,这是不可能的。
0 投票
36 回答
1256981 浏览

python - 使用不同的 Python 版本和 virtualenv

我有一个使用 python 2.5.4 运行的 Debian 系统。我正确安装了 virtualenv,一切正常。是否有可能我可以将 virtualenv 与不同版本的 Python 一起使用?

我编译了 Python 2.6.2 并希望将它与一些 virtualenv 一起使用。覆盖二进制文件就足够了吗?还是我必须改变图书馆的一些东西?

0 投票
3 回答
1083 浏览

python - 对于自动化 python 部署,我需要了解/学习什么?

我正在 Python 中启动一个新的 webapp 项目以进入敏捷思维模式,并且我想在部署方面“正确”地做一些事情。但是,我发现整个 virtualenv/fabric/zc.buildout/etc 的内容有点令人困惑——我习惯于将 PHP 文件通过 FTP 传输到服务器并将网络服务器指向它。

部署后,服务器设置如下所示:
Nginx --proxy-to--> WSGI Webserver (Spawning) --> WSGI Middleware --> WSGI App (probably MNML or similar)
python 网络服务器由 supervisord 管理。

我应该研究什么样的部署设置/包/应用程序?是否有我需要坚持使用我的应用程序以简化部署的特定目录结构?

0 投票
1 回答
439 浏览

python - 在 python 虚拟环境中安装自定义模块

我在虚拟 python 环境中做一些 pylons 工作,我想将 MySQL 与 SQLalchemy 一起使用,但我无法在我的虚拟环境中安装 MySQLdb 模块,我无法使用 easyinstall,因为我使用的是为 python 编译的版本2.6 .exe 格式,我尝试从虚拟环境中运行安装,但没有成功,有什么建议吗?

0 投票
4 回答
6585 浏览

python - Buildout 和 Virtualenv

我正在使用 buildout 和 virtualenv 的组合来在 python 中设置一个隔离的开发环境,允许进行可重复的构建。

有一个构建方法可以让您将 virtualenv 集成到构建中:

有了这个,我的 buildout.cfg 看起来像这样:

这会将两个可执行文件部署到 ./bin/ 中:

当我执行 vp 时,我得到了一个交互式的、隔离的 python 对话框,正如预期的那样(无法从系统加载任何包)。我现在期望的是,如果我跑步

使用了隔离的 python 解释器。但它没有,它不像“vp”那样被隔离(这意味着我可以从系统级别导入库)。但是我可以运行:

它将如我所愿在隔离环境中运行脚本。但是必须有一种方法可以在不链接命令的情况下指定这样做,否则 buildout 只能解决我希望的一半问题:)

谢谢你的帮助!帕特里克

0 投票
4 回答
2329 浏览

python - 虚拟环境混乱

所以我打开一个终端,cd到我的桌面,然后运行:

virtualenv test_env

然后我在我的正常环境中创建以下文件:

/home/jesse/.local/lib/python2.6/site-packages/foo_package/__init__.py

该文件包含一行:

print "importing from normal env"

在我创建的 test_env 中:

/home/jesse/Desktop/test_env/lib/python2.6/site-packages/foo_package/__init__.py

包含:

print "importing from test env"

现在我打开一个终端并运行:

$ /home/jesse/Desktop/test_env/bin/python

然后做:

>>> import foo_package

哪个输出:

importing from normal env

为什么它不从 test_env 导入文件?我认为这就是 virtualenv 的全部意义所在。我在这里错过了什么吗?

编辑: Jon H 告诉我我需要激活环境。但这似乎并不能解决问题......

如果相关,请使用 Ubuntu 9.04 / Python 2.6.2 / virtualenv 1.33。

编辑2: Haes问我虚拟环境中的sys.path是什么......

输出: ['', '/home/jesse/Desktop/test_env/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg', '/usr/local/lib/python2.6/ dist-packages/enum-0.4.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/clonedigger-1.0.9_beta-py2.6.egg', '/usr/ local/lib/python2.6/dist-packages/ETS-3.2.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/TraitsGUI-3.0.4-py2.6 .egg', '/usr/local/lib/python2.6/dist-packages/TraitsBackendWX-3.1.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/TraitsBackendQt -3.1.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/yolk-0.4.1-py2.6.egg', '/usr/local/lib/python2 .6/dist-packages/pylint-0.18.0-py2.6.egg','/usr/local/lib/python2.6/dist-packages/logilab_astng-0.19.0-py2.6.egg',' /usr/local/lib/python2.6/dist-packages/logilab_common-0.39.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pudb-0.92.7-py2.6.egg', '/ usr/local/lib/python2.6/dist-packages/Pygments-1.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/ETSProjectTools-0.5.1-py2.6 .egg', '/usr/local/lib/python2.6/dist-packages/pydee-0.4.24-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/visionegg -1.2.1-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/PyOpenGL-3.0.0c1-py2.6.egg', '/usr/local /lib/python2.6/dist-packages/Whoosh-0.2.6-py2.6.egg','/usr/local/lib/python2.6/dist-packages/pyinotify-0.8.6-py2.6。 egg', '/usr/local/lib/python2.6/dist-packages/svgbatch-0.1.9-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pyglet- 1.1.3-py2.6.egg','/usr/local/lib/python2.6/dist-packages/lepton-1.0b2-py2.6-linux-i686.egg','/usr/local/lib/python2.6/dist-packages/rope-0.9.2-py2.6.egg' , '/usr/local/lib/python2.6/dist-packages/simplejson-2.0.9-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/ pymunk-0.8.4-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/cssutils-0.9.6-py2.6.egg', '/usr/local/lib/ python2.6/dist-packages/Shapely-1.0.14-py2.6.egg','/usr/local/lib/python2.6/dist-packages/sympy-0.6.5-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/virtualenvwrapper-1.20-py2.6.egg', '/home/jesse/Desktop/test_env/lib/python2.6', '/home/jesse/桌面/test_env/lib/python2.6/plat-linux2','/home/jesse/Desktop/test_env/lib/python2.6/lib-tk','/home/jesse/Desktop/test_env/lib/python2. 6/lib-旧的', '/home/jesse/Desktop/test_env/lib/python2.6/lib-dynload','/usr/lib/python2.6','/usr/lib/python2.6/plat-linux2','/usr/ lib/python2.6/lib-tk'、'/home/jesse/.local/lib/python2.6/site-packages'、'/home/jesse/Desktop/test_env/lib/python2.6/site-packages ', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/Numeric' , '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/var/lib/python-support/python2.6 ', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/var/lib/python-support/python2.6/gtk-2.0', '/usr/lib/python2.6/ dist-packages/wx-2.8-gtk2-unicode']6/plat-linux2'、'/usr/lib/python2.6/lib-tk'、'/home/jesse/.local/lib/python2.6/site-packages'、'/home/jesse/Desktop/ test_env/lib/python2.6/site-packages', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib /python2.6/dist-packages/Numeric', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/ var/lib/python-support/python2.6'、'/usr/lib/python2.6/dist-packages/gtk-2.0'、'/var/lib/python-support/python2.6/gtk-2.0' , '/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode']6/plat-linux2'、'/usr/lib/python2.6/lib-tk'、'/home/jesse/.local/lib/python2.6/site-packages'、'/home/jesse/Desktop/ test_env/lib/python2.6/site-packages', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib /python2.6/dist-packages/Numeric', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/ var/lib/python-support/python2.6'、'/usr/lib/python2.6/dist-packages/gtk-2.0'、'/var/lib/python-support/python2.6/gtk-2.0' , '/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode']6/dist-packages'、'/usr/lib/python2.6/dist-packages'、'/usr/lib/python2.6/dist-packages/Numeric'、'/usr/lib/python2.6/dist -packages/PIL'、'/usr/lib/python2.6/dist-packages/gst-0.10'、'/var/lib/python-support/python2.6'、'/usr/lib/python2.6/ dist-packages/gtk-2.0'、'/var/lib/python-support/python2.6/gtk-2.0'、'/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode' ]6/dist-packages'、'/usr/lib/python2.6/dist-packages'、'/usr/lib/python2.6/dist-packages/Numeric'、'/usr/lib/python2.6/dist -packages/PIL'、'/usr/lib/python2.6/dist-packages/gst-0.10'、'/var/lib/python-support/python2.6'、'/usr/lib/python2.6/ dist-packages/gtk-2.0'、'/var/lib/python-support/python2.6/gtk-2.0'、'/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode' ]

编辑3: 我发现了这个: https ://bugs.launchpad.net/ubuntu/+source/python-virtualenv/+bug/339904 显然virtualenv + python 2.6 + ubuntu 9.04 存在一些问题。不确定这是否与我的问题有关...我尝试通过 Synaptic 卸载 python-virtualenv 软件包,然后通过 easy_install 安装 virtualenv 1.3.4 版,但仍然遇到同样的问题...

这看起来像是向前迈了一步,因为test_env路径中出现了一些东西,但它仍然无法正常工作。我认为我当前的问题是 '/home/jesse/.local/lib/python2.6/site-packages' 出现在 '/home/jesse/Desktop/test_env/lib/python2.6/site-packages 之前的路径中'

编辑 4: Roger 建议使用 --no-site-packages 选项创建环境。我试过了。同样的问题。

再次,看起来问题是我的“.local”中的站点包出现在路径中比“test_env”中的站点包更早。

0 投票
4 回答
4643 浏览

python - 通过 os.system() 激活 virtualenv

我正在编写一个基于 Python 的 shell 脚本来样板化一个带有 virtualenv、pip 和 fabric 的 Django 应用程序。应该很简单,但似乎我无法通过 shell 脚本在 virtualenv 中激活和运行命令。

运行时,出现以下错误:

显然这source条线没有运行,但为什么呢?是并发/线程问题,还是 virtualenv 更深层次的问题?

谢谢!

0 投票
2 回答
1822 浏览

python - 使用多个 virtualenv 选项卡和服务启动 gnome-terminal,预命名为

我正在开发一个由多个服务组成的服务器端项目。每个服务都以交互(即非守护程序)模式运行,这在积极开发时很方便。该项目位于virtualenv中。所以启动服务的典型方式是:

如果有 2-3 个服务就可以了。但我们有十几个。并且在计算机重新启动后重新启动所有这些是一个真正的痛苦。

所以我想要的是一个脚本,一旦执行,我就会打开一个新的 gnome-terminal 窗口,其中包含十几个命名选项卡(每个服务一个),每个选项卡中都有激活的 virtualenv 并在该选项卡中运行一堆服务实例。到目前为止,我得到的最好结果是:

--title 和 --profile 看起来被忽略了,如果指定了 --command,则新打开的窗口在打开后立即关闭。

有任何想法吗?如何获取激活脚本、命名和运行服务?

PS 仅用于开发目的,不用于在真实服务器上部署。