是否可以将另一个版本的 Python 安装到 Virtualenv 中?
- 2025-03-05 09:18:00
- admin 原创
- 2
问题描述:
我在安装了 Python 2.4 的虚拟主机中有一个共享帐户,但我的代码与 2.4 不兼容。是否可以将 Python 2.6 直接安装到 Virtualenv?
注意:我没有权限在共享服务器中安装它。
解决方案 1:
以下是 virtualenv 的选项
$ virtualenv
You must provide a DEST_DIR
Usage: virtualenv [OPTIONS] DEST_DIR
Options:
--version show program's version number and exit.
-h, --help show this help message and exit.
-v, --verbose Increase verbosity.
-q, --quiet Decrease verbosity.
-p PYTHON_EXE, --python=PYTHON_EXE
The Python interpreter to use, e.g.,
--python=python2.5 will use the python2.5 interpreter
to create the new environment. The default is the
interpreter that virtualenv was installed with
(/usr/bin/python)
--clear Clear out the non-root install and start from scratch
--no-site-packages Don't give access to the global site-packages dir to
the virtual environment
--unzip-setuptools Unzip Setuptools or Distribute when installing it
--relocatable Make an EXISTING virtualenv environment relocatable.
This fixes up scripts and makes all .pth files
relative
--distribute Use Distribute instead of Setuptools. Set environ
variable VIRTUALENV_USE_DISTRIBUTE to make it the
default
--prompt==PROMPT Provides an alternative prompt prefix for this
environment
1)您要做的是将 python 安装到您可以写入的目录中。
您可以按照说明进行操作here
。
对于 Python 2.7.1
Python source
mkdir ~/src
mkdir ~/.localpython
cd ~/src
wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
tar -zxvf Python-2.7.1.tgz
cd Python-2.7.1
make clean
./configure --prefix=/home/${USER}/.localpython
make
make install
2)安装虚拟环境
virtualenv source
cd ~/src
wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.5.2.tar.gz#md5=fbcefbd8520bb64bc24a560c6019a73c
tar -zxvf virtualenv-1.5.2.tar.gz
cd virtualenv-1.5.2/
~/.localpython/bin/python setup.py install
3)使用本地python创建一个虚拟环境
virtualenv docs
mkdir /home/${USER}/virtualenvs
cd /home/${USER}/virtualenvs
~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7
4)激活环境
cd ~/virtualenvs/py2.7/bin
source ./activate
5)检查
(py2.7)$ python
Python 2.7.1 (r271:86832, Mar 31 2011, 15:31:37)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(py2.7)$ deactivate
$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
解决方案 2:
先决条件:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
使用 Python2.6 安装 virtualenv:
您可以手动下载、构建并安装另一个版本的 Python 到
/usr/local
另一个位置。如果它是除 之外的其他位置
/usr/local
,请将其添加到您的 PATH 中。重新加载你的 shell 以获取更新的 PATH。
从现在起,你应该能够从你的 shell 调用以下两个 Python 二进制文件,
python2.5
并且python2.6
使用以下命令创建 virtualenv 的新实例
python2.6
:
mkvirtualenv --python=python2.6 yournewenv
解决方案 3:
pyenv完整指南
如果未安装 pyenv,则使用pyenv-installer安装它:
$ curl https://pyenv.run | bash
要使用任何自定义的 Python 版本,例如3.5.6
使用以下命令:
pyenv install 3.5.6
pyenv virtualenv 3.5.6 NAME_OF_YOUR_ENV
cd YOUR_PROJECT_PATH
pyenv local NAME_OF_YOUR_ENV
解决方案 4:
现在,我发现获取更新版本的 Python 的最简单方法是通过 conda 将其安装到 conda 环境中。
安装 conda(你可能需要一个虚拟环境)
pip install conda
在 conda 环境中安装新版本的 Python
我在这里添加这个答案是因为不需要手动下载。conda
会为您做到这一点。
现在为您想要的 Python 版本创建一个环境。在此示例中,我将使用3.5.2
,因为它是撰写本文时的最新版本(2016 年 8 月)。
conda create -n py35 python=3.5.2
将创建一个供 conda 安装包的环境
要激活这个环境(我假设是 Linux,否则请检查conda 文档):
source activate py35
现在通过 pip 或 conda 在环境中安装您需要的内容(conda 有更好的二进制包支持)。
conda install <package_name>
解决方案 5:
通常的方法是下载源代码并在本地构建和安装(但不直接在虚拟环境中构建和安装),然后使用该本地 Python 安装创建一个新的虚拟环境。在某些系统上,可以下载并安装预构建的 Python,而不是从源代码构建。
解决方案 6:
此过程会在任何地方安装 Python2.7 ,并消除文件夹(由 virtualenv 管理)内的任何绝对路径引用。即使 virtualenv 也未绝对安装。env
因此,从理论上讲,您可以将顶级目录放入 tarball 中,在未安装 Python (或任何依赖项)的机器上分发并运行 tarball 中配置的任何内容。
如有任何问题请联系我。这只是我正在设计的一个正在进行的大型项目的一部分。现在,对于 drop...
设置环境文件夹。
$ mkdir env
$ mkdir pyenv
$ mkdir dep
无需任何形式的 root OS 安装即可获得 Python-2.7.3 和 virtualenv 。
$ cd dep
$ wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
$ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
提取并安装 Python-2.7.3 到
pyenv
目录中。make clean
如果您是第二次、第三次、第 N 次执行此操作,则是可选的......
$ tar -xzvf Python-2.7.3.tgz
$ cd Python-2.7.3
$ make clean
$ ./configure --prefix=/path/to/pyenv
$ make && make install
$ cd ../../
$ ls
dep env pyenv
创建虚拟环境
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
修复 python2.7 的符号链接
env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
修复 env 中剩余的 python 符号链接。您必须删除符号链接目录并重新创建它们,如上所述。此外,以下是强制就地创建符号链接的语法。
$ ls -l env/lib/python2.7/
$ cd !$
$ ln -sf ../../../pyenv/lib/python2.7/UserDict.py UserDict.py
[...repeat until all symbolic links are relative...]
$ cd ../../../
测试
$ python --version
Python 2.7.1
$ source env/bin/activate
(env)
$ python --version
Python 2.7.3
你好。
解决方案 7:
我正在使用 virtualenvwrapper 并且不想修改 $PATH,方法如下:
$ which python3
/usr/local/bin/python3
$ mkvirtualenv --python=/usr/local/bin/python3 env_name
解决方案 8:
尽管问题具体描述了如何安装 2.6,但我想在上面的优秀答案中添加一些要点,以防有人遇到这种情况。为了记录,我的情况是我试图在 ubuntu 10.04 机器上安装 2.7。
首先,我对这里所有答案中描述的方法的动机是,从deadsnake 的 ppa安装 Python完全失败了。因此,构建本地 Python 是可行的方法。
尝试过后,我认为依赖 pip 的默认安装(使用sudo apt-get install pip
)就足够了。不幸的是,这是错误的。结果,我遇到了一系列棘手的问题,最终无法创建虚拟环境。
因此,我强烈建议使用在本地安装 pipwget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
。这个相关问题给了我这个提示。
如果这不起作用,请确保已安装适用libssl-dev
于 Ubuntu 或openssl-dev
CentOS 的。使用apt-get
或安装它们yum
,然后重新构建 Python(如果已安装,则无需删除任何内容,只需在上面执行即可)。对此抱怨,您可以通过在 py shell 上get-pip
运行来检查。import ssl
最后,不要忘记将.local/bin
本地 python 声明到路径,用which pip
和进行检查which python
。
解决方案 9:
您可以使用 pyenv。
有很多不同版本,如anaconda、jython、pypy等等......
安装非常简单pyenv install 3.2.6
pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.6.6
...
解决方案 10:
不可以,但是你可以在你的目录下安装一个独立的 Python 构建(例如ActivePython) 。$HOME
这种方法是最快的,并且不需要您自己编译 Python。
(作为奖励,您还可以使用 ActiveState 的二进制包管理器)
解决方案 11:
我还没有找到合适的答案,所以这里是我的看法,它建立在@toszter 的回答之上,但不使用系统 Python(并且您可能知道,在处理许多 Python 配置时,在系统级别安装 setuptools 和 virtualenv 并不总是一个好主意):
#!/bin/sh
mkdir python_ve
cd python_ve
MYROOT=`pwd`
mkdir env pyenv dep
cd ${MYROOT}/dep
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-15.2.tar.gz#md5=a9028a9794fc7ae02320d32e2d7e12ee
wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
xz -d Python-2.7.9.tar.xz
cd ${MYROOT}/pyenv
tar xf ../dep/Python-2.7.9.tar
cd Python-2.7.9
./configure --prefix=${MYROOT}/pyenv && make -j 4 && make install
cd ${MYROOT}/pyenv
tar xzf ../dep/setuptools-15.2.tar.gz
cd ${MYROOT}
pyenv/bin/python dep/virtualenv.py --no-setuptools --python=${MYROOT}/pyenv/bin/python --verbose env
env/bin/python pyenv/setuptools-15.2/setup.py install
env/bin/easy_install pip
echo "virtualenv in ${MYROOT}/env"
解决先有鸡还是先有蛋的问题的诀窍是先创建没有 setuptools 的虚拟环境,因为否则会失败(找不到 pip)。也许可以直接安装 pip / wheel,但不知何故 easy_install 是我首先想到的。此外,可以通过分解出具体版本来改进脚本。
注意:在脚本中使用 xz。
解决方案 12:
首先,感谢 DTing 的精彩回答。几乎完美。
对于那些在共享主机中无法访问 GCC 的人来说,可以使用 ActivePython 而不是像 Scott Stafford 提到的普通 Python。下面是相关命令。
wget http://downloads.activestate.com/ActivePython/releases/2.7.13.2713/ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz
tar -zxvf ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz
cd ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785
./install.sh
它会询问你 python 目录的路径。输入
../../.localpython
只需将上面的内容替换为 DTing 答案中的步骤 1,然后继续执行步骤 2。请注意,ActivePython 包 URL 可能会随着新版本的发布而改变。您可以随时从这里获取新的 URL: http://www.activestate.com/activepython/downloads
根据 URL,您需要根据收到的文件更改 tar 和 cd 命令的名称。
解决方案 13:
virtualenv --python=".localpython/bin/python2.7" 环境
- 2025年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)