استخدم إصدارًا مختلفًا من Python مع virtualenv
-
20-09-2019 - |
سؤال
لدي نظام دبيان يعمل حاليًا مع python 2.5.4.لقد قمت بتثبيت Virtualenv بشكل صحيح، وكل شيء يعمل بشكل جيد.هل هناك إمكانية أن أتمكن من استخدام virtualenv مع إصدار مختلف من Python؟
لقد قمت بتجميع Python 2.6.2 وأرغب في استخدامه مع بعض Virtualenv.هل يكفي الكتابة فوق الملف الثنائي؟أو هل يجب علي تغيير شيء ما فيما يتعلق بالمكتبات؟
المحلول
ومجرد استخدام خيار --python
(أو -p
قصيرة) عند إنشاء المثال virtualenv لتحديد بيثون تنفيذ تريد استخدام، منها مثلا:
virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>
وN.B. لعلى بيثون 3.3 أو في وقت لاحق، تشير إلى وAelfinn في الجواب أدناه.
نصائح أخرى
<القوي> UPDATE: بالنسبة Python3.6، تم إهمال البرنامج النصي أدناه pyvenv
. في حين أن،
الظاهري مستندات بيثون أقترح أ > خلق بيئة افتراضية باستخدام الأمر التالي:
python3 -m venv <myenvname>
لpython3 (3.3+)، واستخدام إما الأسلوب أعلاه أو في النصي قيادة pyvenv
pyvenv /path/to/new/virtual/environment
يرجى ملاحظة أن venv
لا يسمح خلق virtualenv مع إصدارات أخرى من بيثون. لذلك، تثبيت واستخدام virtualenv
حزمة .
هذه هي الخطوات عندما تكون في بيئة استضافة مشتركة وتحتاج إلى تثبيت Python والتوافق معه من المصدر ثم إنشاء venv من إصدار Python الخاص بك.بالنسبة إلى Python 2.7.9، ستفعل شيئًا على هذا المنوال:
mkdir ~/src
wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
mkdir ~/.localpython
./configure --prefix=$HOME/.localpython
make
make install
البيئة الافتراضية
cd ~/src
wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63
tar -zxvf virtualenv-15.0.2.tar.gz
cd virtualenv-15.0.2/
~/.localpython/bin/python setup.py install
virtualenv ve -p $HOME/.localpython/bin/python2.7
source ve/bin/activate
وبطبيعة الحال، يمكن أن ينطبق هذا على أي موقف تريد فيه تكرار البيئة الدقيقة التي تعمل فيها وتنشر عليها.
virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>
وهناك طريقة أسهل،
virtualenv venv --python=python2.7
والشكر على تعليق، وهذا يعمل فقط إذا كان لديك python2.7 تثبيت على مستوى النظام (مثل /usr/bin/python2.7).
وإلا، إذا كنت تستخدم البيرة يمكنك استخدام المسار لتعطيك ما تريد.
virtualenv venv --python=/usr/local/bin/python
ويمكنك العثور على مسار التثبيت الثعبان مع
which python
وهذا سيعمل أيضا مع الثعبان 3.
which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3
والتكثيف في نهاية المطاف إلى:
virtualenv venv -p `which python`
virtualenv venv -p `which python3`
وتحت Windows بالنسبة لي هذه الأعمال:
virtualenv --python=c:\Python25\python.exe envname
ودون python.exe
حصلت WindowsError: [Error 5] Access is denied
لدي Python2.7.1 تثبيتها مع virtualenv 1.6.1، وأردت الثعبان 2.5.2.
وماك OSX 10.6.8 (سنو ليوبارد):
1) عند القيام pip install virtualenv
، ويرتبط الأمر نقطة مع واحد من الإصدارات الثعبان الخاص بك، ويحصل على تثبيت virtualenv
في هذا الإصدار من الثعبان. يمكنك أن تفعل
$ which pip
لمعرفة ما هو إصدار الثعبان هذا هو. إذا كنت ترى شيئا مثل:
$ which pip
/usr/local/bin/pip
وبعد ذلك القيام به:
$ ls -al /usr/local/bin/pip
lrwxrwxr-x 1 root admin 65 Apr 10 2015 /usr/local/bin/pip ->
../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
ويمكنك مشاهدة النسخة الثعبان في الإخراج.
وافتراضيا، التي من شأنها أن تكون نسخة من الثعبان الذي يتم استخدامه لأية بيئة الجديدة التي تقوم بإنشائها. ومع ذلك، يمكنك تحديد أي إصدار من الثعبان المثبتة على جهاز الكمبيوتر الخاص بك لاستخدام داخل بيئة جديدة مع -p flag
:
$ virtualenv -p python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3.2
New python executable in my_env/bin/python
Installing setuptools, pip...done.
<اقتباس فقرة>
وvirtualenv my_env
سوف إنشاء مجلد في الدليل الحالي الذي
سوف تحتوي على الملفات القابلة للتنفيذ بيثون، ونسخة من نقطة
[القيادة] والتي يمكنك استخدامها لتثبيت حزم أخرى.
http://docs.python-guide.org/en/ احدث / ديف / virtualenvs /
وvirtualenv
مجرد نسخ الثعبان من موقع على جهاز الكمبيوتر الخاص بك إلى تم إنشاؤه حديثا my_env / بن / دليل.
2) الثعبان النظام في /usr/bin
، في حين أن الإصدارات الثعبان مختلف لقد قمت بتثبيت، افتراضيا، مثبت إلى:
/usr/local/bin
و3) مختلف الثعابين أنا ركبت لها أسماء مثل python2.7
أو python3.2
، وأستطيع أن استخدام تلك الأسماء بدلا من المسارات الكاملة.
======== ========= VIRTUALENVWRAPPER
1) كان لي بعض مشاكل في الحصول على virtualenvwrapper إلى العمل. هذا هو ما انتهى بي الأمر في وضع ~/.bash_profile
:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/django_projects #Not very important -- mkproject command uses this
#Added the following based on:
#http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
#source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh
2) -p option
يعمل بشكل مختلف مع virtualenvwrapper: لدي لتحديد المسار الكامل إلى مترجم الثعبان لاستخدامها في البيئة الجديدة (عندما كنت لا تريد استخدام الإصدار الثعبان الافتراضي):
$ mkvirtualenv -p /usr/local/bin/python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3
New python executable in my_env/bin/python
Installing setuptools, pip...done.
Usage: source deactivate
removes the 'bin' directory of the environment activated with 'source
activate' from PATH.
وعلى عكس virtualenv، virtualenvwrapper سيخلق بيئة في الموقع المحدد بواسطة متغير $ WORKON_HOME البيئة. التي تحافظ على جميع البيئات في مكان واحد.
لنفترض لديك حاليا الثعبان 2.7 تثبيت في virtualenv الخاص بك. لكنهم يريدون الاستفادة من python3.2
، هل سيكون لديك لتحديث هذا مع:
$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv
وبعد ذلك تنشيط و<م> virtualenv م> حسب:
$ source activate name_of_your_virtualenv
وبعد ذلك: python --version
في شل للتحقق ما إذا كان يتم تحديث الإصدار الخاص بك الآن
وهذين الأمرين يجب أن تعمل بشكل جيد.
وvirtualenv -p python2 myenv
(للpython2)
وvirtualenv -p python3 myenv
(للpython3)
ويمكنك الاتصال virtualenv
مع النسخة الثعبان الذي تريده. على سبيل المثال:
python3 -m virtualenv venv
وأو بدلا من ذلك تشير مباشرة إلى مسار virtualenv الخاص بك. مثلا للنوافذ:
c:\Python34\Scripts\virtualenv.exe venv
وعن طريق تشغيل:
venv/bin/python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
ويمكنك مشاهدة النسخة الثعبان تركيبها في بيئة افتراضية
وهذا النهج -p
يعمل بشكل جيد، ولكن يجب عليك أن تتذكر أن استخدمه في كل وقت. إذا كان هدفك هو للتبديل إلى إصدار أحدث من بيثون عموما، وهذا هو الألم، ويمكن أن يؤدي أيضا إلى الأخطاء.
والخيار الآخر الخاص بك هو لتعيين متغير البيئة أن يفعل الشيء نفسه -p
. ضبط هذا عن طريق ملف ~/.bashrc
الخاص بك أو في أي مكان كنت تدير متغيرات البيئة لجلسات دخولك:
export VIRTUALENV_PYTHON=/path/to/desired/version
وبعد ذلك virtualenv
سوف تستخدم أنه في أي وقت كنت لا يحدد -p
على سطر الأوامر.
لماك (ارتفاع سييرا)، تثبيت virtualenv على python3 وإنشاء virtualenv لpython2:
$ python3 -m pip install virtualenv
$ python3 -m virtualenv --python=python2 vp27
$ source vp27/bin/activate
(vp27)$ python --version
Python 2.7.14
وحتى أسهل، من خلال استخدام استبدال القيادة لإيجاد python2 لك:
وvirtualenv -p $(which python2) <path/to/new/virtualenv/>
وأو عند استخدام virtualenvwrapper:
وmkvirtualenv -p $(which python2) <env_name>
في استخدام pyenv ماك الأول وvirtualenvwrapper. كان لي لإنشاء virtualenv الجديد. لك حاجة البيرة التي سوف أفترض أنك قد قمت بتثبيت إذا كنت على لجنة الهدنة العسكرية، ولكن فقط من أجل المتعة:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}
وأنا أيضا جمدت متطلبات بلدي أولا حتى يمكن أن أقوله ببساطة إعادة تثبيت في virtualenv جديد مع:
pip install -r requirements.txt
في نظام Windows الفرعي لنظام التشغيل Linux:
إنشاء بيئة لـ python3:
virtualenv --python=/usr/bin/python3 env
تفعيلها:
source env/bin/activate
نعم, ، الإجابات المذكورة أعلاه صحيحة وتعمل بشكل جيد على الأنظمة المستندة إلى Unix مثل لينكس & ماك أو إس إكس.
حاولت خلق Virtualenv ل بايثون2 & بايثون3 مع الأوامر التالية.
هنا لقد استخدمت venv2 & venv3 كاسمائهم ل بايثون2 & بايثون3 على التوالى.
بايثون2 »
MacBook-Pro-2:~ admin$ virtualenv venv2 --python=`which python2`
Running virtualenv with interpreter /usr/local/bin/python2
New python executable in /Users/admin/venv2/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$
MacBook-Pro-2:~ admin$ ls venv2/bin/
activate easy_install pip2.7 python2.7
activate.csh easy_install-2.7 python wheel
activate.fish pip python-config
activate_this.py pip2 python2
MacBook-Pro-2:~ admin$
بايثون3 »
MacBook-Pro-2:~ admin$ virtualenv venv3 --python=`which python3`
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/admin/venv3/bin/python3
Also creating executable in /Users/admin/venv3/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$
MacBook-Pro-2:~ admin$ ls venv3/bin/
activate easy_install pip3.6 python3.6
activate.csh easy_install-3.6 python wheel
activate.fish pip python-config
activate_this.py pip3 python3
MacBook-Pro-2:~ admin$
التحقق من مواقع تثبيت بايثون
MacBook-Pro-2:~ admin$ which python2
/usr/local/bin/python2
MacBook-Pro-2:~ admin$
MacBook-Pro-2:~ admin$ which python3
/usr/local/bin/python3
MacBook-Pro-2:~ admin$
عملت معي
sudo apt-get install python3-minimal
virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
في نوافذ:
py -3.4x32 -m venv venv34
أو
py -2.6.2 -m venv venv26
وهذا يستخدم py
قاذفة حيث سوف تجد الثعبان الصحيح تنفيذ بالنسبة لك (على افتراض انك قد ركبت عليه).
virtualenv -p python3 myenv
لديبيان (ديبيان 9) نظم في 2019، اكتشفت حلا بسيطا قد حل المشكلة من خلال بيئة افتراضية.
تم إنشاؤهالنفترض أن بيئة افتراضية عن طريق:
python3.7 -m venv myenv
ولكن ليس لديها سوى إصدارات python2
وpython2.7
، وكنت في حاجة إلى ميزات الأخيرة من python3.7.
وبعد ذلك، ببساطة تشغيل الأمر:
(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/
وسيضيف حزم python3.7 إذا كانت متوفرة بالفعل على النظام الخاص بك.
وكان هذا الخلل مع virtualenv. مجرد رفع مستوى النقطة الخاصة بك ينبغي أن يكون الإصلاح.
وpip install --upgrade virtualenv
لقد نجح الأمر بالنسبة لي على نظام التشغيل Windows مع تثبيت python 2:
- الخطوة 1:تثبيت نسخة بايثون 3.
- الخطوة 2:إنشاء مجلد ENV للبيئة الافتراضية.
- الخطوه 3 :C: Python37 Python -M Venv C: path to env.
هذه هي الطريقة التي أنشأت بها بيئة Python 3 الافتراضية على تثبيت python 2 الموجود لدي.
pyenv لإدارة نسختي الثعبان.
pyenv install 3.7.3
pyenv local 3.7.3
وتحقق النسخة الثعبان الخاص بك:
$ python --version
Python 3.7.3
وإنشاء بيئة افتراضية مع venv :
python -m venv .
وبعد ذلك تنشيط بيئة افتراضية:
source bin/activate
وتحقق النسخة الثعبان الخاص بك:
$ python --version
Python 3.7.3
قد تحتاج إلى إزالة بيئة افتراضية السابقة م>
rm -rf bin
ويمكنك القيام بذلك عن طريق القيام بذلك:
virtualenv -p python3 .
ونعم تحتاج فقط إلى تثبيت نسخة أخرى من الثعبان، وتحديد مكان النسخة الأخرى الخاصة بك من الثعبان في قيادة مثل :،
<اقتباس فقرة> <اقتباس فقرة> <اقتباس فقرة>وvirtualenv / الوطن / الرواتب / المستندات / الحياة الفطرية -p / البيرة / بن / python3
اقتباس فقرة> اقتباس فقرة> اقتباس فقرة>فيما يلي خطوة بخطوة كيفية إنشاء البيئة الافتراضية في مجلد Visual Studio Code:لقد استخدمت Powershell (وضع المسؤول):
1.أقوم بإنشاء مجلد VSCode - "D:\Code_Python_VE" حيث أريد إنشاء بيئة افتراضية.
2.بعد ذلك أكتب الأمر - "pip3 install virtualenv".(d: code_python_ve> pip3 تثبيت VirtualEnv) 3.D:\Code_Python_VE> python3 -m venv project_env
4.D:\Code_Python_VE>project_env\Scripts\activate.bat
5.D:\Code_Python_VE> ls - سيؤدي هذا إلى إدراج دليل جديد "project_env".
6.رمز D:\Code_Python_VE> .سيؤدي هذا إلى بدء تشغيل Visual Studio Code.تأكد من أن الأمر (رمز .).
7.قم بإنشاء Launch.jason بالمحتوى التالي:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "python",
"request": "launch",
"name": "Python: Current File (Integrated Terminal 1)",
"program": "${file}"
},
{
"name": "Python: Current File (Integrated Terminal 2)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
]
}
(يرجى البحث عن كيفية الانتقال إلى نافذة التصحيح وإضافة تكوين جديد في VS Code).
- اضغط على F1 في رمز Visual studio وسيتم فتح لوحة الأوامر - حدد Python Interpreter وحدد البيئة الافتراضية project_env.
- قم بإضافة ملف test.py مع عبارة واحدة print("Hello World").
- قم بتشغيل هذا البرنامج.
- في محطة Visual studio Code -
(project_env) d:\Code_Python_VE>python -m pip install --upgrade
آمل أن يساعد هذا.