web-dev-qa-db-ja.com

Pythonの別のバージョンをVirtualenvにインストールすることはできますか?

Python 2.4がインストールされているWebホスティングに共有アカウントがありますが、コードは2.4と互換性がありません。 VirtualenvにPython 2.6を直接インストールすることはできますか?

注:共有サーバーにインストールする権限がありません。

145
André

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

For 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.
>>> 
249
DTing

前提条件:

  1. Sudo easy_install virtualenv
  2. Sudo pip install virtualenvwrapper

Python2.6でのvirtualenvのインストール:

  1. Pythonの別のバージョンを/usr/localまたは別の場所に手動でダウンロード、ビルド、およびインストールできます。
  2. /usr/local以外の別の場所の場合は、PATHに追加します。
  3. シェルをリロードして、更新されたPATHを取得します。
  4. この時点から、次の2つのpythonバイナリをシェルから呼び出すことができますpython2.5およびpython2.6
  5. python2.6を使用してvirtualenvの新しいインスタンスを作成します。

    mkvirtualenv --python=python2.6 yournewenv

20
Thierry Lam

私はvirtualenvwrapperを使用していますが、$ PATHを変更したくないので、次のようにします:

$ which python3
/usr/local/bin/python3

$ mkvirtualenv --python=/usr/local/bin/python3 env_name
4
laike9m

この手順では、Python2.7をインストールしますどこでも絶対パス参照を削除しますenvフォルダー内(virtualenvで管理)。 virtualenvでさえ絶対にインストールされません。

したがって、理論的には、最上位ディレクトリをtarballにドロップし、Pythonを持たないマシンでtarball内に設定されたものを配布し、実行できます。依存関係)インストール済み。

質問があれば私に連絡してください。これは、現在進行中の大規模なプロジェクトの一部です。さて、ドロップのために...

  1. 環境フォルダーをセットアップします。

    $ mkdir env
    $ mkdir pyenv
    $ mkdir dep
    
  2. Python-2.7.3およびvirtualenv withoutのルートOSインストールの任意の形式を取得します。

    $ 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
    
  3. Python-2.7.3を抽出してpyenv dirにインストールします。 make cleanは、2回目、3回目、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
    
  4. Virtualenvを作成します

    $ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
    
  5. env/include/内のpython2.7へのシンボリックリンクを修正します

    $ ls -l env/include/
    $ cd !$
    $ rm python2.7
    $ ln -s ../../pyenv/include/python2.7 python2.7
    $ cd ../../
    
  6. 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 ../../../
    
  7. テスト

    $ python --version
    Python 2.7.1
    $ source env/bin/activate
    (env)
    $ python --version
    Python 2.7.3
    

アロハ。

4
azatar

今では、Pythonのより更新されたバージョンを見つけた最も簡単な方法は、condaを介してconda環境にインストールすることです。


Condaをインストールします(これにはvirtualenvが必要になる場合があります)

pip install conda

Conda環境内に新しいPythonバージョンをインストールする

手動でダウンロードする必要がないため、この回答をここに追加します。 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>
3
Bryce Guinta

通常のアプローチは、ソースをダウンロードし、ローカルにビルドしてインストールし(virtualenvに直接ではない)、そのローカルPythonインストールを使用して新しいvirtualenvを作成することです。一部のシステムでは、ソースからビルドするのではなく、ビルド済みのPythonをダウンロードしてインストールできる場合があります。

3
user227667

Pyenvを使用できます。

アナコンダ、jython、pypyなどのさまざまなバージョンがあります...

https://github.com/yyuu/pyenv

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

...

2
Ezhik

質問では2.6のインストールについて具体的に説明していますが、誰かがこれに遭遇した場合に備えて、上記の優れた回答にいくつかの重要なポイントを追加したいと思います。記録のために、私の場合は、ubuntu 10.04ボックスに2.7をインストールしようとしていました。

最初に、ここでのすべての回答に記載されている方法に対する私の動機は、 deadsnake's ppa's からPythonをインストールすることが完全に失敗したことです。したがって、ローカルPythonを構築するのがよいでしょう。

試してみたので、デフォルトのpipのインストール(Sudo apt-get install pipを使用)に頼るだけで十分だと思いました。残念ながらこれは間違っています。私は厄介な問題のすべてのショートを取得しており、最終的にvirtualenvを作成することができなかったことが判明しました。

したがって、pipをローカルにインストールするwget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --userを強くお勧めします。 これ 関連する質問がこのヒントをくれました。

これが機能しない場合、Ubuntuの場合は libssl-dev を、CentOSの場合は openssl-dev がインストールされていることを確認してください。 apt-getまたはyumを使用してインストールし、Pythonを再構築します(既にインストールされている場合は何も削除する必要はありません。上で行ってください)。 get-pipはそれについて文句を言います。pyシェルでimport sslを実行することで確認できます。

最後に、.local/binとローカルpythonをパスに宣言することを忘れないでください。which pipwhich pythonで確認してください。

1
Wtower

いいえ。ただし、$HOMEディレクトリの下に、隔離されたPythonビルド( ActivePython など)をインストールできます。

このアプローチは最速であり、Pythonを自分でコンパイルする必要はありません。

(ボーナスとして、ActiveStateの バイナリパッケージマネージャーも使用できます

0

適切な答えが見つかりませんでしたので、@ toszterの答えに基づいて作成された私のテイクに行きますが、システムPythonを使用しませんシステムレベルで多くのPython構成を扱う場合):

#!/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を使用せずにvirtualenvを作成することです。 pip/wheelを直接インストールすることも可能かもしれませんが、どういうわけかeasy_installが最初に思い浮かびました。また、具体的なバージョンを除外することで、スクリプトを改善できます。

NB。スクリプトでxzを使用します。

0
Roman Susi

まず第一に、素晴らしい回答をありがとうございました。それはほとんど完璧です。

共有ホスティングでGCCにアクセスできないことに苦しんでいる人のために、Scott Staffordが述べたような通常のpythonの代わりにActivePythonを選択してください。以下がそのためのコマンドです。

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コマンドの名前を変更する必要があります。

0