我在安装了Python 2.4的网络托管中有一个共享帐户,但我的代码与2.4不兼容。是否可以直接将Python 2.6安装到Virtualenv?
注意:我没有权限在共享服务器中安装它。
答案 0 :(得分:248)
以下是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
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
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.
>>>
答案 1 :(得分:20)
先决条件:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
使用Python2.6安装virtualenv:
/usr/local
或其他位置。 /usr/local
以外的其他位置,请将其添加到您的路径中。 python2.5
和python2.6
使用python2.6
创建virtualenv的新实例:
mkvirtualenv --python=python2.6 yournewenv
答案 2 :(得分:4)
此过程在env
文件夹(由virtualenv管理)中的任何地方安装Python2.7 并删除任何绝对路径引用。甚至virtualenv也没有绝对安装。
因此,从理论上讲,您可以将顶级目录放入tarball,分发并运行在未安装Python (或任何依赖项)的计算机上的tarball中配置的任何内容。
如有任何问题,请与我联系。这只是我正在进行的一个正在进行的大型项目的一部分。现在,为了下降......
设置环境文件夹。
$ mkdir env
$ mkdir pyenv
$ mkdir dep
获取Python-2.7.3和virtualenv ,无需任何形式的root操作系统安装。
$ 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
目录中。如果您在第2次,第3次,第N次这样做,make clean
是可选的......
$ 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
创建你的virtualenv
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
将符号链接修复为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
阿罗哈。
答案 3 :(得分:4)
我正在使用virtualenvwrapper并且不想修改$ PATH,这是如何:
$ which python3
/usr/local/bin/python3
$ mkvirtualenv --python=/usr/local/bin/python3 env_name
答案 4 :(得分:3)
通常的方法是下载源代码并在本地构建和安装(但不是直接在virtualenv中),然后使用本地Python安装创建一个新的virtualenv。在某些系统上,可以下载并安装预构建的python,而不是从源代码构建。
答案 5 :(得分:3)
现在有一天,我发现拥有更新版Python的最简单方法是通过conda将其安装到conda环境中。
安装conda(你可能需要一个virtualenv)
pip install conda
我在此处添加此答案,因为无需手动下载。 conda
会为你做到这一点。
现在为您想要的Python版本创建一个环境。在这个例子中,我将使用3.5.2
,因为它是撰写本文时的最新版本(2016年8月)。
conda create -n py35 python=3.5.2
将为conda创建一个安装包的环境
要激活此环境(我假设linux,否则请检查conda docs):
source activate py35
现在通过environemnt中的pip或conda安装你需要的东西(conda有更好的二进制包支持)。
conda install <package_name>
答案 6 :(得分:2)
您可以使用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
...
答案 7 :(得分:1)
虽然这个问题具体描述了安装2.6,但我想在有人遇到这个问题时,为上面的优秀答案添加一些重点。为了记录,我的情况是我试图在ubuntu 10.04盒子上安装2.7。
首先,我对所有答案中描述的方法的动机是,从deadsnake's ppa's安装Python已经彻底失败了。因此,构建本地Python是最佳选择。
尝试过后,我认为依赖于pip的默认安装(使用sudo apt-get install pip
)就足够了。不幸的是,这是错误的。事实证明,我得到了所有短缺的令人讨厌的问题,并最终无法创建virtualenv。
因此,我强烈建议{strong> install pip locally 与wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
。 This相关问题给了我这个提示。
现在,如果这不起作用,请确保安装了libssl-dev
用于Ubuntu或openssl-dev
用于CentOS。使用apt-get
或yum
安装它们,然后重新构建Python(如果已安装,则无需删除任何内容,请在顶部执行此操作)。 get-pip
抱怨,您可以通过在py shell上运行import ssl
来检查。
最后,不要忘记将.local/bin
和本地python声明为路径,请与which pip
和which python
一起检查。
答案 8 :(得分:0)
不,但您可以在$HOME
目录下安装一个独立的Python版本(例如ActivePython)。
这种方法是最快的,并且不需要您自己编译Python。
(作为奖励,您还可以使用ActiveState的binary package manager)
答案 9 :(得分:0)
首先,谢谢DTing的精彩回答。它非常完美。
对于那些在共享托管中没有GCC访问权限的人来说,Go for 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可能会随新版本而更改。您始终可以从此处获取新网址:http://www.activestate.com/activepython/downloads
根据URL,您需要根据收到的文件更改tar和cd命令的名称。
答案 10 :(得分:0)
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
pyenv activate name_of_your_env