Ответы:
Вот варианты для 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) Создайте 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.
>>>
curl gcc build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdm-dev libbz2-dev libc6-dev libsqlite3-dev tk-dev
source
это башизм. Эквивалент POSIX является .
.
Предпосылки:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
Установка virtualenv с помощью Python2.6:
Вы можете вручную загрузить, собрать и установить другую версию Python в /usr/local
другое место.
Если это другое место, кроме /usr/local
, добавьте его в свой путь.
Перезагрузите вашу оболочку, чтобы забрать обновленную PATH.
С этого момента вы сможете вызывать следующие 2 двоичных файла Python из вашей оболочки python2.5
иpython2.6
Создайте новый экземпляр virtualenv с помощью python2.6
:
mkvirtualenv --python=python2.6 yournewenv
Эта процедура устанавливает Python2.7 в любом месте и удаляет любые ссылки на абсолютные пути в вашей env
папке (управляется virtualenv) . Даже virtualenv не установлен абсолютно.
Таким образом, теоретически вы можете поместить каталог верхнего уровня в tarball, распространять и запускать все, что настроено в tarball, на машине, на которой не установлен Python (или какие-либо зависимости) .
Свяжитесь со мной по любым вопросам. Это только часть продолжающегося, более крупного проекта, который я разрабатываю. Теперь о падении ...
Настройте папки среды.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Получите 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
необязательно, если вы делаете это во 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
Создайте свой virtualenv
$ 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 ../../
Исправьте оставшиеся символические ссылки на python в env. Вам придется удалить символически связанные каталоги и воссоздать их, как указано выше. Кроме того, вот синтаксис для принудительного создания символической ссылки на месте.
$ 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
Aloha.
Обычный подход заключается в загрузке исходного кода, сборке и установке локально (но не непосредственно в virtualenv), а затем создании нового virtualenv с использованием этой локальной установки Python. В некоторых системах может быть возможно загрузить и установить предварительно собранный питон, а не собирать его из исходного кода.
В наши дни самый простой способ найти более обновленную версию Python - это установить ее через conda в среду conda.
Установите conda (вам может понадобиться virtualenv для этого)
pip install conda
Я добавляю этот ответ здесь, потому что загрузка вручную не требуется. conda
сделаю это для вас.
Теперь создайте среду для нужной вам версии Python. В этом примере я буду использовать 3.5.2
, потому что это последняя версия на момент написания статьи (август 2016 г.).
conda create -n py35 python=3.5.2
Создаст среду для conda для установки пакетов
Чтобы активировать эту среду (я предполагаю, что linux в противном случае проверьте документы conda ):
source activate py35
Теперь установите то, что вам нужно, через pip или conda в environemnt (у conda улучшена поддержка бинарных пакетов).
conda install <package_name>
Вы можете использовать pyenv.
Есть много разных версий анаконды, 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
...
Хотя вопрос конкретно описывает установку 2.6, я хотел бы добавить несколько важных моментов к превосходным ответам на случай, если кто-то сталкивается с этим. Для справки, мой случай состоял в том, что я пытался установить 2.7 на коробку ubuntu 10.04.
Во-первых, моя мотивация к методам, описанным во всех ответах здесь, состоит в том, что установка Python из ppa deadsnake была полным провалом. Так что создание местного 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
. Этот связанный вопрос дал мне эту подсказку.
Теперь, если это не работает, убедитесь, что установлена libssl-dev
Ubuntu или openssl-dev
CentOS. Установите их с помощью apt-get
или, yum
а затем пересоберите Python (не нужно ничего удалять, если он уже установлен, сделайте это сверху). get-pip
жалуется на это, вы можете проверить это, запустив import ssl
оболочку py.
Наконец, не забудьте объявить .local/bin
и локальный Python для пути, проверьте с помощью which pip
и which python
.
Полное руководство с 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
Нет, но вы можете установить изолированную сборку Python (например, ActivePython ) в вашем $HOME
каталоге.
Этот подход самый быстрый и не требует компиляции Python самостоятельно.
(в качестве бонуса вы также можете использовать менеджер двоичных пакетов ActiveState )
Я не нашел подходящего ответа, так что здесь идет мой взгляд, который основывается на ответе @toszter, но не использует системный Python (и вы, возможно, знаете, не всегда хорошая идея устанавливать setuptools и virtualenv на системном уровне при работе со многими Конфигурации 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"
Хитрость в решении проблемы куриного яйца заключается в том, чтобы сначала сделать virtualenv без setuptools, поскольку в противном случае он не работает (пункт не может быть найден). Может быть возможно установить pip / wheel напрямую, но каким-то образом easy_install был первым, что пришло мне в голову. Кроме того, сценарий может быть улучшен путем выделения конкретных версий.
NB. Использование xz в скрипте.
Прежде всего, спасибо DTing за отличный ответ. Это в значительной степени идеально.
Для тех, кто страдает от отсутствия доступа к GCC на виртуальном хостинге, используйте Go для ActivePython вместо обычного 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
Просто замените шаг 1 в ответе DTing и переходите к шагу 2 после этого. Обратите внимание, что URL-адрес пакета ActivePython может измениться с новым выпуском. Вы всегда можете получить новый URL отсюда: http://www.activestate.com/activepython/downloads
На основании URL вам нужно изменить имя команды tar и cd в зависимости от полученного файла.
make clean
прежде чем./configure --prefix=/home/<user>/.localpython
на самом делеmake clean
вернул ошибку. 2.virtualenv name -p=/python/path
не работал, аvirtualenv name -p /python/path
работал. Я предполагаю, что это до версии virtualenv. ура!