2017-03-28 18 views
14

साथ आभासी env बनाने के लिए मैं MyProject परियोजनाओं को चलाने के लिए अजगर 2.7 + virtualenv संस्करण 1.10.1 उपयोग कर रहा हूँ। कुछ अन्य परियोजनाओं की आवश्यकता के कारण मुझे पायथन के अन्य संस्करण (पायथन 3.5) और Django 1.9 के साथ काम करना है। इसके लिए मैंने अपनी उपयोगकर्ता निर्देशिका में पायथन स्थापित किया है। इसके अलावा मैंने अपनी उपयोगकर्ता निर्देशिका में dowloaded और वर्चुअलएन्व (संस्करण - 15.1.0) स्थापित किया है। लेकिन जब भी मैं आभासी env मैं नीचे त्रुटिकैसे python3

python virtualenv/virtualenv.py myproject 
हो रही है बनाने के लिए कोशिश कर रहा हूँ
Using base prefix '/home/myuser/python3' 
New python executable in /home/mount/myuser/project_python3/myproject/bin/python 
ERROR: The executable /home/mount/myuser/project_python3/myproject/bin/python is not functioning 
ERROR: It thinks sys.prefix is '/home/myuser/python3' (should be '/home/mount/myuser/project_python3/myproject') 
ERROR: virtualenv is not compatible with this system or executable 

किसी को भी बता सकते हैं कि मैं इस

+1

निष्क्रिय करता है यह स्पष्ट नहीं है कि जब आप दौड़ते हैं तो आप किस पायथन का उपयोग कर रहे हैं 'पायथन वर्चुअल/v virtualenv.py myproject'। क्या आपके सिस्टम पायथन (2.7) या आपके स्थानीय पायथन (3.5) में 'पायथन' है? – Chris

+1

क्या आपने वर्चुअलएएन संस्करण - 15.1.0 स्थापित करने के लिए सही पाइप का उपयोग किया था, यानी पीपी 3? –

+0

मुझे हमेशा [इन दस्तावेज़] (http://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/) उपयोगी लगता है। – blacksite

उत्तर

28

पायथन 3.6+ में, pyvenv मॉड्यूल को बहिष्कृत किया गया है। बजाय के बाद एक-लाइनर का प्रयोग करें:

python3 -m venv <myenvname> 

यह recommended way अजगर समुदाय द्वारा आभासी वातावरण तैयार करना है।

5

अजगर के साथ कुछ गलत कर रहा हूँ पहले से ही अपने builtin के साथ जहाजों " वर्चुअलनव "संस्करण 3.3 के बाद venv कहा जाता है। अब आपको Python 3.3+ के लिए virtualenv स्क्रिप्ट स्थापित या डाउनलोड करने की आवश्यकता नहीं है।

https://docs.python.org/3/library/venv.html

चेक कि अपनी स्थापना pyvenv आदेश बनाने "virtualenv" का ध्यान रखना चाहिए प्रदान की है। तर्क क्लासिक वर्चुअलनेव प्रोजेक्ट के समान हैं।

$ pyvenv --help 
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] 
      [--upgrade] [--without-pip] 
      ENV_DIR [ENV_DIR ...] 

Creates virtual Python environments in one or more target directories. 

positional arguments: 
    ENV_DIR    A directory to create the environment in. 

optional arguments: 
    -h, --help   show this help message and exit 
    --system-site-packages 
         Give the virtual environment access to the system 
         site-packages dir. 
    --symlinks   Try to use symlinks rather than copies, when symlinks 
         are not the default for the platform. 
    --copies    Try to use copies rather than symlinks, even when 
         symlinks are the default for the platform. 
    --clear    Delete the contents of the environment directory if it 
         already exists, before environment creation. 
    --upgrade    Upgrade the environment directory to use this version 
         of Python, assuming Python has been upgraded in-place. 
    --without-pip   Skips installing or upgrading pip in the virtual 
         environment (pip is bootstrapped by default) 

Once an environment has been created, you may wish to activate it, e.g. by 
sourcing an activate script in its bin directory. 
+4

यह स्क्रिप्ट पाइथन 3.6+ में बहिष्कृत है, हालांकि मॉड्यूल अभी भी मौजूद है। अनुशंसित उपयोग यह है: 'python3 -m venv ' –

+0

@ user73657 मैं पायथन 3.5 का उपयोग कर रहा हूं। लेकिन अगर मैं कमांड चलाता हूं तो इसके कहने वाले कमांड को – Anish

+0

नहीं मिला @ user73657 pyenv 3.5.3 – Anish

-1

चीजों को सरल बनाने के लिए वर्चुअलएन्व के शीर्ष पर वर्चुअलएन्वावापर स्थापित करें। आसान चरणों में स्थापित करने के लिए ब्लॉग का पालन करें: यह बनाने के लिए virtualenvwrapper

कदम:

  1. mkvirtualenv -p/usr/bin/python3
  2. संकुल स्थापित करें का उपयोग कर - PACKAGE_NAME
  3. workon स्थापित पिप - वर्चुअलएन्व को सक्रिय करता है, deactivate - viirtualenv
+1

'virtualenv' मदद के आसपास एक रैपर कैसे जोड़ देगा यदि वर्चुअलएनवी' स्वयं काम नहीं कर रहा है? – Chris

+0

यह एक दोहराया जवाब है। यह भी एक गलत जवाब है। virtualenv बहिष्कृत है, यह वर्चुअलenv के चारों ओर एक रैपर है –