سؤال

لدي نظام دبيان يعمل حاليًا مع 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:

  1. إنشاء بيئة لـ python3:

    virtualenv --python=/usr/bin/python3 env
    
  2. تفعيلها:

    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

لينك لإنشاء virtualenv

لديبيان (ديبيان 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. الخطوة 1:تثبيت نسخة بايثون 3.
  2. الخطوة 2:إنشاء مجلد ENV للبيئة الافتراضية.
  3. الخطوه 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).

  1. اضغط على F1 في رمز Visual studio وسيتم فتح لوحة الأوامر - حدد Python Interpreter وحدد البيئة الافتراضية project_env.
  2. قم بإضافة ملف test.py مع عبارة واحدة print("Hello World").
  3. قم بتشغيل هذا البرنامج.
  4. في محطة Visual studio Code -
    (project_env) d:\Code_Python_VE>python -m pip install --upgrade
    آمل أن يساعد هذا.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top