我的机器上安装了两个版本的Python(版本2.6和2.5).我想为一个项目运行2.6,为另一个项目运行2.5.
如何指定要使用的内容?
我正在使用Windows XP SP2.
我已经安装了Python 3.4.0并创建了虚拟环境python -m venv myenv.如何在虚拟环境中更改Python版本?文件说:
每个虚拟环境都有自己的Python二进制文件(允许创建具有各种Python版本的环境),并且可以在其站点目录中拥有自己独立的已安装Python包集.
UPDATE
请注意,我从标准库询问venv,而不是virtualenv.让我提供一些链接.
我没有--python在venv中看到类似旗帜的东西.
venv和virtualenv绝对相似吗?venv是如此不受欢迎,没有人使用它,以便virtualenv仍然是标准?
我的计算机上有几个不同版本的python.当我在提示符下键入"python"时,如何选择从终端运行哪一个?
我面临着一种独特的情况,有点微不足道但很痛苦.
我需要使用Python 2.6.6,因为NLTK没有移植到Python 3(这是我可以收集的).
在一个不同的代码(它同时工作)中,有一个集合计数器函数,它只在Python 3中可用,但在Python 2.6.6中不可用.
所以,每次我在两个代码之间切换时,我都需要安装和卸载版本.那是浪费时间.
有关如何指定我想使用哪个版本的任何建议?
还有许多类似于此问题的其他StackOverflow问题,但在每种情况下,平台都不同或错误消息不同或解决方案没有效果或过时.我正在尝试设置Python 2.7.6 virtualenv并在其中安装模块,但easy_install给出了错误,指示setuptools不可用.但是AFAIK easy_install是setuptools的一部分,所以这没有任何意义.
问题只发生在virtualenv中.这就是我所做的:
yum -y update最新的东西,重新启动./configure; make; sudo make installpython -V给了我2.7.6并sudo python -V给了我2.7.6wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py--no-check-certificate标志添加到wget以解决我们网络中的代理服务器问题sudo python ez_setup.pysudo easy_install pipsudo pip install virtualenvvirtualenv virtpy. virtpy/bin/activateeasy_install elementtree除最后一个步骤外,所有这些步骤都成功,但失败的原因是:
Traceback (most recent call last):
File "/home/gperrow/virtpy/bin/easy_install", line 7, in <module>
from setuptools.command.easy_install import main
File "/home/gperrow/virtpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 44, in <module>
from setuptools.package_index import PackageIndex
File "/home/gperrow/virtpy/lib/python2.7/site-packages/setuptools/package_index.py", line 203, in <module> …Run Code Online (Sandbox Code Playgroud) 我正在尝试用uwsgi部署django,我认为我不了解它是如何工作的.我有uwsgi在皇帝模式下运行,我正试图让他们的自己的virtualenvs运行vassals与不同的python版本.
皇帝配置:
[uwsgi]
socket = /run/uwsgi/uwsgi.socket
pidfile = /run/uwsgi/uwsgi.pid
emperor = /etc/uwsgi.d
emperor-tyrant = true
master = true
autoload = true
log-date = true
logto = /var/log/uwsgi/uwsgi-emperor.log
Run Code Online (Sandbox Code Playgroud)
和附庸:
uid=django
gid=django
virtualenv=/home/django/sites/mysite/venv/bin
chdir=/home/django/sites/mysite/site
module=mysite.uwsgi:application
socket=/tmp/uwsgi_mysite.sock
master=True
Run Code Online (Sandbox Code Playgroud)
我在emperor日志中看到以下错误:
Traceback (most recent call last):
File "./mysite/uwsgi.py", line 11, in <module>
import site
ImportError: No module named site
Run Code Online (Sandbox Code Playgroud)
我的网站的virtualenv创建为python 3.4 pyvenv.uwsgi是系统uwsgi(python2.6).我的印象是,皇帝可能是任何python版本,因为附庸将使用自己的python和环境启动,由主进程启动.我现在认为这是错误的.
我想要做的是使用系统python运行uwsgi主进程,但使用自己的python和自己的库运行各种vassal(应用程序).这可能吗?或者,如果我想运行多个蟒蛇,我将不得不运行多个皇帝?有点打败虚拟环境的目的.
我有一个virtualenv项目,它使用python2.6,但现在我想使用python2.7.有没有办法做到这一点,而无需备份我的项目文件,为正确的python版本重新创建virtualenv,然后将我的文件复制回virtualenv?
这似乎不是一个手工完成的大任务,但能够自动化这对于轻松测试一个项目对许多python版本仍然是非常有用的,同时仍然在virtualenv.
如果我用 python 2.7 编写程序,并且想使用另一个 python (2.6) 运行另一个脚本文件,我该怎么做?
编辑:我这样做是因为我需要 Django (安装在 python 2.7 中)并且我需要一些仅适用于 python 2.6 的程序...
EDIT2:所以我编写了简单的脚本,它将在 python 2.6 中执行,我将在 python 2.7 中得到结果
python ×8
python-3.x ×3
virtualenv ×3
easy-install ×1
nltk ×1
pip ×1
python-2.7 ×1
python-2.x ×1
python-venv ×1
unix ×1
uwsgi ×1
version ×1
windows ×1