Odpowiedzi:
Oto opcje dla 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) To, co chcesz zrobić, to zainstalować Pythona w katalogu, w którym możesz pisać.
Możesz postępować zgodnie z instrukcjami here
.
W przypadku Pythona 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) Zainstaluj 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) Utwórz virtualenv za pomocą lokalnego języka Python
virtualenv docs
mkdir /home/${USER}/virtualenvs
cd /home/${USER}/virtualenvs
~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7
4) Aktywuj środowisko
cd ~/virtualenvs/py2.7/bin
source ./activate
5) Sprawdź
(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
to bashism. Odpowiednik POSIX to .
.
Wymagania wstępne:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
Instalowanie virtualenv w Pythonie2.6:
Możesz ręcznie pobrać, skompilować i zainstalować inną wersję Pythona do /usr/local
lub innej lokalizacji.
Jeśli jest to inna lokalizacja niż /usr/local
, dodaj ją do ścieżki PATH.
Załaduj ponownie powłokę, aby pobrać zaktualizowaną ścieżkę.
Od tego momentu powinieneś być w stanie wywołać następujące 2 pliki binarne Pythona ze swojej powłoki python2.5
ipython2.6
Utwórz nową instancję virtualenv za pomocą python2.6
:
mkvirtualenv --python=python2.6 yournewenv
Ta procedura instaluje Python 2.7 w dowolnym miejscu i eliminuje wszelkie bezwzględne odniesienia do ścieżek w env
folderze (zarządzanym przez virtualenv) . Nawet virtualenv nie jest zainstalowany absolutnie.
Zatem teoretycznie możesz upuścić katalog najwyższego poziomu do paczki, rozprowadzać i uruchamiać wszystko skonfigurowane w tarballu na maszynie, która nie ma zainstalowanego Pythona (ani żadnych zależności) .
Kontaktuj się ze mną w razie pytań. To tylko część trwającego, większego projektu, który tworzę. Teraz do kropli ...
Skonfiguruj foldery środowiskowe.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Pobierz Python-2.7.3 i virtualenv bez jakiejkolwiek instalacji systemu operacyjnego 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
Rozpakuj i zainstaluj Python-2.7.3 w katalogu pyenv
. make clean
jest opcjonalne, jeśli robisz to po raz drugi, trzeci, n-ty ...
$ 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
Stwórz swój virtualenv
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
Napraw link symboliczny do python2.7 w env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
Napraw pozostałe linki symboliczne Pythona w env. Będziesz musiał usunąć katalogi połączone symbolicznie i odtworzyć je, jak powyżej. Oto składnia wymuszająca tworzenie dowiązań symbolicznych w miejscu.
$ 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 ../../../
Test
$ python --version
Python 2.7.1
$ source env/bin/activate
(env)
$ python --version
Python 2.7.3
Aloha.
Typowe podejście polega na pobraniu źródła, skompilowaniu i zainstalowaniu lokalnie (ale nie bezpośrednio w virtualenv), a następnie utworzeniu nowego virtualenv przy użyciu tej lokalnej instalacji Pythona. W niektórych systemach możliwe jest pobranie i zainstalowanie wstępnie skompilowanego języka Python zamiast budowania ze źródła.
Obecnie najłatwiejszym sposobem, w jaki znalazłem bardziej zaktualizowaną wersję Pythona, jest zainstalowanie jej przez Conda w środowisku Conda.
Zainstaluj condę (możesz potrzebować do tego virtualenv)
pip install conda
Dodaję tę odpowiedź tutaj, ponieważ nie jest potrzebne ręczne pobieranie. conda
zrobi to za Ciebie.
Teraz utwórz środowisko dla żądanej wersji Pythona. W tym przykładzie użyję 3.5.2
, ponieważ jest to najnowsza wersja w chwili pisania (sierpień 2016).
conda create -n py35 python=3.5.2
Stworzy środowisko dla Conda do instalowania pakietów
Aby aktywować to środowisko ( zakładam, że Linux w przeciwnym razie sprawdź dokumentację Conda ):
source activate py35
Teraz zainstaluj to, czego potrzebujesz, za pomocą pip lub conda w środowisku (conda ma lepszą obsługę pakietów binarnych).
conda install <package_name>
Możesz użyć pyenv.
Istnieje wiele różnych wersji anaconda, jython, pypy i tak dalej ...
Instalacja tak prosta, jak 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
...
Chociaż pytanie konkretnie opisuje instalację 2.6, chciałbym dodać kilka ważnych punktów do doskonałych odpowiedzi powyżej, na wypadek gdyby ktoś zetknął się z tym. Dla przypomnienia, moim przypadkiem było to, że próbowałem zainstalować 2.7 na pudełku Ubuntu 10.04.
Po pierwsze, moją motywacją do metod opisanych we wszystkich odpowiedziach jest to, że instalowanie Pythona z ppa Deadsnake'a zakończyła się całkowitą porażką. Tak więc budowanie lokalnego języka Python jest drogą do zrobienia.
Próbując tak, pomyślałem, że oparcie się na domyślnej instalacji pip (with sudo apt-get install pip
) będzie wystarczające. Niestety jest to błędne. Okazało się, że dostaję mnóstwo paskudnych problemów i ostatecznie nie jestem w stanie stworzyć virtualenv.
Dlatego bardzo polecam lokalną instalację pip z wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
. To powiązane pytanie dało mi tę wskazówkę.
Teraz, jeśli to nie zadziała, upewnij się, że jest zainstalowany system libssl-dev
Ubuntu lub openssl-dev
CentOS. Zainstaluj je za pomocą apt-get
lub, yum
a następnie ponownie skompiluj Pythona (nie musisz niczego usuwać, jeśli jest już zainstalowany, zrób to na górze). get-pip
narzeka na to, możesz to sprawdzić, uruchamiającimport ssl
na powłoce py.
Na koniec nie zapomnij zadeklarować .local/bin
i lokalnego Pythona do ścieżki, sprawdź za pomocą which pip
i which python
.
Pełny przewodnik z pyenv
Jeśli pyenv nie jest zainstalowany, zainstaluj go za pomocą pyenv-installera :
$ curl https://pyenv.run | bash
Aby użyć dowolnej niestandardowej wersji Pythona, na przykład 3.5.6
użyj następującego:
pyenv install 3.5.6
pyenv virtualenv 3.5.6 name_of_your_env
pyenv activate name_of_your_env
Nie, ale możesz zainstalować izolowaną kompilację Pythona (taką jak ActivePython ) w swoim $HOME
katalogu.
To podejście jest najszybsze i nie wymaga samodzielnego kompilowania Pythona.
(jako bonus możesz również użyć menedżera pakietów binarnych ActiveState )
Nie znalazłem odpowiedniej odpowiedzi, więc oto moja opinia, która opiera się na odpowiedzi @toszter, ale nie korzysta z systemu Python (i możesz wiedzieć, nie zawsze jest dobrym pomysłem instalowanie setuptools i virtualenv na poziomie systemu, gdy masz do czynienia z wieloma Konfiguracje Pythona):
#!/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"
Sztuczka polegająca na rozwiązaniu problemu z jajkiem kurzego polega na tym, aby najpierw utworzyć virtualenv bez setuptools, ponieważ w przeciwnym razie zawodzi (nie można znaleźć pip). Możliwe jest bezpośrednie zainstalowanie pip / wheel, ale w jakiś sposób easy_install była pierwszą rzeczą, która przyszła mi do głowy. Skrypt można również ulepszyć, uwzględniając konkretne wersje.
NB. Używanie xz w skrypcie.
Przede wszystkim dziękuję DTing za świetną odpowiedź. Jest prawie doskonały.
Dla tych, którzy cierpią z powodu braku dostępu do GCC w hostingu współdzielonym, wybierz ActivePython zamiast zwykłego Pythona, o którym wspomniał Scott Stafford. Oto polecenia do tego.
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
Zapyta Cię o ścieżkę do katalogu Pythona. Wchodzić
../../.localpython
Po prostu zamień powyższe na Krok 1 w odpowiedzi DTing, a następnie przejdź do kroku 2. Należy pamiętać, że adres URL pakietu ActivePython może ulec zmianie wraz z nową wersją. Zawsze możesz uzyskać nowy adres URL stąd: http://www.activestate.com/activepython/downloads
Na podstawie adresu URL musisz zmienić nazwę polecenia tar i cd na podstawie otrzymanego pliku.
make clean
zanim./configure --prefix=/home/<user>/.localpython
faktyczniemake clean
zwróciłem błąd. 2.virtualenv name -p=/python/path
nie działało, zamiast tegovirtualenv name -p /python/path
działało. Zakładam, że wszystko zależy od wersji virtualenv. Twoje zdrowie!