Câu trả lời:
Dưới đây là các tùy chọn cho 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) Những gì bạn muốn làm là cài đặt python vào một thư mục mà bạn có thể viết quá.
Bạn có thể làm theo hướng dẫn here
.
Đối với 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) Cài đặt 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) Tạo virtualenv bằng python cục bộ của bạn
virtualenv docs
mkdir /home/${USER}/virtualenvs
cd /home/${USER}/virtualenvs
~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7
4) Kích hoạt môi trường
cd ~/virtualenvs/py2.7/bin
source ./activate
5) Kiểm tra
(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
là một bashism. Tương đương POSIX là .
.
Điều kiện tiên quyết:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
Cài đặt virtualenv với Python2.6:
Bạn có thể tự tải xuống, xây dựng và cài đặt phiên bản Python khác tới /usr/local
hoặc một vị trí khác.
Nếu đó là một vị trí khác ngoài /usr/local
, hãy thêm nó vào ĐƯỜNG của bạn.
Tải lại shell của bạn để nhận PATH cập nhật.
Từ thời điểm này, bạn sẽ có thể gọi 2 nhị phân trăn sau từ vỏ của mình python2.5
vàpython2.6
Tạo một phiên bản mới của virtualenv với python2.6
:
mkvirtualenv --python=python2.6 yournewenv
Quy trình này cài đặt Python2.7 ở mọi nơi và loại bỏ mọi tham chiếu đường dẫn tuyệt đối trong env
thư mục của bạn (được quản lý bởi virtualenv) . Ngay cả virtualenv cũng không được cài đặt hoàn toàn.
Do đó, về mặt lý thuyết, bạn có thể thả thư mục cấp cao nhất vào tarball, phân phối và chạy mọi thứ được định cấu hình trong tarball trên máy không cài đặt Python (hoặc bất kỳ phụ thuộc nào) .
liên lạc với tôi với bất kì câu hỏi nào. Đây chỉ là một phần của một dự án lớn hơn đang diễn ra mà tôi đang thiết kế. Bây giờ, cho thả ...
Thiết lập thư mục môi trường.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Nhận Python-2.7.3 và virtualenv mà không cần bất kỳ hình thức cài đặt hệ điều hành gốc nào.
$ 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
Giải nén và cài đặt Python-2.7.3 vào pyenv
thư mục. make clean
là tùy chọn nếu bạn đang thực hiện việc này lần thứ 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
Tạo virtualenv của bạn
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
Sửa lỗi symlink thành python2.7 trong env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
Sửa các symlink python còn lại trong env. Bạn sẽ phải xóa các thư mục được liên kết tượng trưng và tạo lại chúng, như trên. Ngoài ra, đây là cú pháp để buộc tạo liên kết tượng trưng tại chỗ.
$ 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 ../../../
Kiểm tra
$ python --version
Python 2.7.1
$ source env/bin/activate
(env)
$ python --version
Python 2.7.3
Aloha.
Cách tiếp cận thông thường là tải xuống nguồn và xây dựng và cài đặt cục bộ (nhưng không trực tiếp trong virtualenv), sau đó tạo một virtualenv mới bằng cách sử dụng cài đặt Python cục bộ đó. Trên một số hệ thống, có thể tải xuống và cài đặt một con trăn dựng sẵn, thay vì xây dựng từ nguồn.
Bây giờ, một ngày, cách dễ nhất mà tôi thấy có phiên bản Python cập nhật hơn là cài đặt nó qua conda vào môi trường conda.
Cài đặt conda (bạn có thể cần một virtualenv cho việc này)
pip install conda
Tôi đang thêm câu trả lời này vào đây vì không cần tải xuống thủ công. conda
sẽ làm điều đó cho bạn.
Bây giờ hãy tạo một môi trường cho phiên bản Python mà bạn muốn. Trong ví dụ này tôi sẽ sử dụng 3.5.2
, bởi vì nó là phiên bản mới nhất tại thời điểm viết bài này (tháng 8 năm 2016).
conda create -n py35 python=3.5.2
Sẽ tạo môi trường cho conda để cài đặt gói
Để kích hoạt môi trường này (tôi giả sử linux kiểm tra tài liệu conda ):
source activate py35
Bây giờ cài đặt những gì bạn cần thông qua pip hoặc conda trong môi trường (conda có hỗ trợ gói nhị phân tốt hơn).
conda install <package_name>
Bạn có thể sử dụng pyenv.
Có rất nhiều phiên bản khác nhau anaconda, jython, pypy và vv ...
Cài đặt đơn giản như 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
...
Mặc dù câu hỏi mô tả cụ thể việc cài đặt 2.6, tôi muốn thêm một số điểm nhập khẩu vào các câu trả lời xuất sắc ở trên trong trường hợp ai đó gặp phải vấn đề này. Đối với hồ sơ, trường hợp của tôi là tôi đã cố gắng cài đặt 2.7 trên hộp ubfox 10.04.
Đầu tiên, động lực của tôi đối với các phương thức được mô tả trong tất cả các câu trả lời ở đây là việc cài đặt Python từ ppa của dowsnake đã hoàn toàn thất bại. Vì vậy, xây dựng một Python địa phương là cách để đi.
Đã thử như vậy, tôi nghĩ việc dựa vào cài đặt mặc định của pip (với sudo apt-get install pip
) là đủ. Điều này không may là sai. Hóa ra tôi đã nhận được tất cả các vấn đề khó chịu và cuối cùng không thể tạo ra một virtualenv.
Vì vậy, tôi khuyên bạn nên cài đặt pip cục bộ với wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
. Câu hỏi liên quan này đã cho tôi gợi ý này.
Bây giờ nếu điều này không hoạt động, hãy đảm bảo rằng libssl-dev
cho Ubuntu hoặc openssl-dev
cho CentOS đã được cài đặt. Cài đặt chúng bằng apt-get
hoặc yum
sau đó xây dựng lại Python (không cần xóa bất cứ thứ gì nếu đã cài đặt, làm như vậy ở trên cùng). get-pip
phàn nàn về điều đó, bạn có thể kiểm tra bằng cách chạy import ssl
trên vỏ py.
Cuối cùng, đừng quên khai báo .local/bin
và trăn cục bộ đến đường dẫn, kiểm tra which pip
và which python
.
Hướng dẫn đầy đủ với pyenv
Nếu pyenv chưa được cài đặt thì hãy cài đặt nó với trình cài đặt pyenv :
$ curl https://pyenv.run | bash
Để sử dụng bất kỳ phiên bản python tùy chỉnh, ví dụ: 3.5.6
sử dụng như sau:
pyenv install 3.5.6
pyenv virtualenv 3.5.6 name_of_your_env
pyenv activate name_of_your_env
Không, nhưng bạn có thể cài đặt một bản dựng Python bị cô lập (như ActivePython ) trong $HOME
thư mục của bạn .
Cách tiếp cận này là nhanh nhất và không yêu cầu bạn phải tự biên dịch Python.
(như một phần thưởng, bạn cũng có thể sử dụng trình quản lý gói nhị phân của ActiveState )
Tôi chưa tìm thấy câu trả lời phù hợp, vì vậy, đây là cách tôi thực hiện, dựa trên câu trả lời @toszter, nhưng không sử dụng hệ thống Python (và bạn có thể biết, không phải lúc nào cũng nên cài đặt setuptools và virtualenv ở cấp hệ thống khi giao dịch với nhiều người Cấu hình 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"
Thủ thuật phá vỡ vấn đề trứng gà ở đây là tạo virtualenv mà không cần setuptools trước, bởi vì nó không thành công (không thể tìm thấy pip). Có thể có thể cài đặt pip / bánh xe trực tiếp, nhưng bằng cách nào đó easy_install là điều đầu tiên tôi nghĩ đến. Ngoài ra, kịch bản có thể được cải thiện bằng cách bao thanh toán các phiên bản cụ thể.
Lưu ý Sử dụng xz trong kịch bản.
Trước hết, Cảm ơn bạn DTing cho câu trả lời tuyệt vời. Nó khá là hoàn hảo.
Đối với những người đang đau khổ vì không có quyền truy cập GCC trong lưu trữ được chia sẻ, hãy truy cập ActivePython thay vì python bình thường như Scott Stafford đã đề cập. Dưới đây là các lệnh cho điều đó.
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
Nó sẽ hỏi bạn đường dẫn đến thư mục python. Đi vào
../../.localpython
Chỉ cần thay thế ở trên như Bước 1 trong câu trả lời của DTing và tiếp tục với Bước 2 sau đó. Xin lưu ý rằng URL gói ActivePython có thể thay đổi với bản phát hành mới. Bạn luôn có thể nhận URL mới từ đây: http://www.activestate.com/activepython/doads
Dựa trên URL, bạn cần thay đổi tên của lệnh tar và cd dựa trên tệp nhận được.
make clean
trước khi./configure --prefix=/home/<user>/.localpython
thực tếmake clean
trả lại lỗi. 2.virtualenv name -p=/python/path
đã không làm việc thay vìvirtualenv name -p /python/path
đã làm việc. Tôi giả sử nó xuống phiên bản virtualenv. chúc mừng