ฉันมีบัญชีที่ใช้ร่วมกันในการโฮสต์เว็บที่ติดตั้ง Python 2.4 ไว้แล้ว แต่รหัสของฉันไม่สามารถทำงานร่วมกับ 2.4 ได้ เป็นไปได้ไหมที่จะติดตั้ง Python 2.6 ไปยัง Virtualenv โดยตรง?
หมายเหตุ: ฉันไม่ได้รับอนุญาตให้ติดตั้งในเซิร์ฟเวอร์ที่ใช้ร่วมกัน
ฉันมีบัญชีที่ใช้ร่วมกันในการโฮสต์เว็บที่ติดตั้ง Python 2.4 ไว้แล้ว แต่รหัสของฉันไม่สามารถทำงานร่วมกับ 2.4 ได้ เป็นไปได้ไหมที่จะติดตั้ง Python 2.6 ไปยัง Virtualenv โดยตรง?
หมายเหตุ: ฉันไม่ได้รับอนุญาตให้ติดตั้งในเซิร์ฟเวอร์ที่ใช้ร่วมกัน
คำตอบ:
นี่คือตัวเลือกสำหรับ 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) สิ่งที่คุณต้องการทำคือติดตั้งหลามในไดเรกทอรีที่คุณสามารถเขียนได้เช่นกัน
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 .
คือ
Pre-requisites:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
การติดตั้ง virtualenv ด้วย Python2.6:
คุณสามารถดาวน์โหลดสร้างและติดตั้ง Python เวอร์ชัน/usr/local
อื่นหรือที่อื่น
หากเป็นตำแหน่งอื่นที่ไม่ใช่/usr/local
ให้เพิ่มไปยัง PATH ของคุณ
โหลดเชลล์ของคุณใหม่เพื่อรับ PATH ที่อัพเดท
จากจุดนี้เป็นต้นไปคุณควรจะเรียกไบนารีไพ ธ อน 2 ตัวต่อไปนี้จากเชลล์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
dir make clean
เป็นทางเลือกถ้าคุณกำลังทำเช่นนี้เป็นครั้งที่ 2, 3, Nth ...
$ 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
แก้ไข symlink เป็น python2.7 ภายใน env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
แก้ไข python symlink ที่เหลือใน 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
ฉันใช้ virtualenvwrapper และไม่ต้องการแก้ไข $ PATH ต่อไปนี้เป็นวิธี:
$ which python3
/usr/local/bin/python3
$ mkvirtualenv --python=/usr/local/bin/python3 env_name
วิธีการปกติคือการดาวน์โหลดแหล่งที่มาและสร้างและติดตั้งภายใน (แต่ไม่ได้โดยตรงใน virtualenv) แล้วสร้าง virtualenv ใหม่โดยใช้การติดตั้ง Python ในพื้นที่นั้น ในบางระบบอาจเป็นไปได้ที่จะดาวน์โหลดและติดตั้งงูหลามที่สร้างไว้ล่วงหน้าแทนที่จะสร้างจากแหล่งที่มา
วันนี้วิธีที่ง่ายที่สุดที่ฉันพบว่ามีเวอร์ชัน Python ที่อัปเดตมากกว่าคือติดตั้งผ่าน conda ในสภาพแวดล้อม conda
ติดตั้ง conda (คุณอาจต้องมี virtualenv สำหรับสิ่งนี้)
pip install conda
ฉันกำลังเพิ่มคำตอบนี้ที่นี่เพราะไม่จำเป็นต้องดาวน์โหลดด้วยตนเอง conda
จะทำเพื่อคุณ
ตอนนี้สร้างสภาพแวดล้อมสำหรับเวอร์ชัน Python ที่คุณต้องการ ในตัวอย่างนี้ฉันจะใช้3.5.2
เพราะมันเป็นเวอร์ชั่นล่าสุด ณ เวลาที่เขียนนี้ (ส.ค. 2559)
conda create -n py35 python=3.5.2
จะสร้างสภาพแวดล้อมสำหรับ conda เพื่อติดตั้งแพ็คเกจ
เพื่อเปิดใช้งานสภาพแวดล้อมนี้ (ฉันสมมติว่า linux ตรวจสอบเอกสาร conda ):
source activate py35
ตอนนี้ติดตั้งสิ่งที่คุณต้องการผ่านทาง pip หรือ conda ใน environemnt (conda มีการสนับสนุนแพ็คเกจไบนารีที่ดีกว่า)
conda install <package_name>
คุณอาจใช้ 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.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
บนเปลือกหอย
สุดท้ายอย่าลืมที่จะประกาศ.local/bin
และงูหลามท้องถิ่นไปยังเส้นทางตรวจสอบกับและwhich pip
which python
คู่มือฉบับเต็มพร้อมpyenv
หากไม่ได้ติดตั้งpyenv ให้ติดตั้งด้วยpyenv-installer :
$ curl https://pyenv.run | bash
ในการใช้งานเวอร์ชันหลามที่กำหนดเองใด ๆ เช่น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
ไดเรกทอรีของคุณ
วิธีนี้เป็นวิธีที่เร็วที่สุดและไม่ต้องการให้คุณรวบรวมไพ ธ อนด้วยตัวคุณเอง
(เป็นโบนัสคุณจะได้ใช้ตัวจัดการแพคเกจไบนารีของ ActiveState ด้วย)
ฉันไม่พบคำตอบที่เหมาะสมดังนั้นต่อไปนี้ไปซึ่งสร้างตามคำตอบ @toszter แต่ไม่ได้ใช้ระบบ Python (และคุณอาจรู้ว่ามันไม่ควรติดตั้ง setuptools และ virtualenv ในระดับระบบเมื่อจัดการกับหลาย ๆ การกำหนดค่าหลาม):
#!/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 ในโฮสติ้งที่ใช้ร่วมกันให้ไปที่ ActivePython แทนที่จะเป็นไพ ธ อนปกติเช่น Scott Stafford ที่กล่าวถึง นี่คือคำสั่งสำหรับสิ่งนั้น
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
มันจะถามคุณเส้นทางไปยังไดเรกทอรีหลาม เข้าสู่
../../.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 ไชโย!