2011-05-06 5 views
6

मैं पाइथन 2.6.5 के साथ उबंटू 10.04 पर वर्चुअलनव सेट अप करने की कोशिश कर रहा हूं लेकिन कुछ समस्याएं हैं।एक वर्चुअलनेव सेट करने में समस्या

स्थापित virtualenv और पिप के साथ virtualenv आवरण होने के बाद, मैं कमांड चल रहा हूँ: virtualenv mysite-env --verbose

मैं मिल निम्न त्रुटि:

Creating mysite-env/lib/python2.6 
Symlinking Python bootstrap modules 
    Symlinking mysite-env/lib/python2.6/lib-dynload 
    Symlinking mysite-env/lib/python2.6/config 
    Symlinking mysite-env/lib/python2.6/os.py 
    Ignoring built-in bootstrap module: posix 
    Symlinking mysite-env/lib/python2.6/posixpath.py 
    Cannot import bootstrap module: nt 
    Symlinking mysite-env/lib/python2.6/ntpath.py 
    Symlinking mysite-env/lib/python2.6/genericpath.py 
    Symlinking mysite-env/lib/python2.6/fnmatch.py 
    Symlinking mysite-env/lib/python2.6/locale.py 
    Symlinking mysite-env/lib/python2.6/encodings 
    Symlinking mysite-env/lib/python2.6/codecs.py 
    Symlinking mysite-env/lib/python2.6/stat.py 
    Symlinking mysite-env/lib/python2.6/UserDict.py 
    Symlinking mysite-env/lib/python2.6/lib-dynload/readline.so 
    Symlinking failed, copying to mysite-env/lib/python2.6/lib-dynload/readline.so 
Traceback (most recent call last): 
    File "/usr/local/bin/virtualenv", line 9, in <module> 
    load_entry_point('virtualenv==1.6.1', 'console_scripts', 'virtualenv')() 
    File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 795, in main 
    never_download=options.never_download) 
    File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 886, in create_environment 
    site_packages=site_packages, clear=clear)) 
    File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1020, in install_python 
    copy_required_modules(home_dir) 
    File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 974, in copy_required_modules 
    copyfile(filename, dst_filename) 
    File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 414, in copyfile 
    copyfileordir(src, dest) 
    File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 391, in copyfileordir 
    shutil.copy2(src, dest) 
    File "/usr/lib/python2.6/shutil.py", line 99, in copy2 
    copyfile(src, dst) 
    File "/usr/lib/python2.6/shutil.py", line 53, in copyfile 
    fdst = open(dst, 'wb') 
IOError: [Errno 20] Not a directory: 'mysite-env/lib/python2.6/lib-dynload/readline.so' 

अगर मैं इसे फिर से चलाने , मुझे निम्न मिलता है:

Directory mysite-env/lib/python2.6 already exists 
    Symlinking Python bootstrap modules 
     Ignoring built-in bootstrap module: posix 
     Cannot import bootstrap module: nt 
     Symlinking mysite-env/lib/python2.6/lib-dynload/readline.so 
     Symlinking mysite-env/lib/python2.6/copy_reg.py 
     Symlinking mysite-env/lib/python2.6/types.py 
     Symlinking mysite-env/lib/python2.6/re.py 
     Symlinking mysite-env/lib/python2.6/sre.py 
     Symlinking mysite-env/lib/python2.6/sre_parse.py 
     Symlinking mysite-env/lib/python2.6/sre_constants.py 
     Symlinking mysite-env/lib/python2.6/sre_compile.py 
     Ignoring built-in bootstrap module: zlib 
     Symlinking mysite-env/lib/python2.6/warnings.py 
     Symlinking mysite-env/lib/python2.6/linecache.py 
     Symlinking mysite-env/lib/python2.6/_abcoll.py 
     Symlinking mysite-env/lib/python2.6/abc.py 
    Creating mysite-env/lib/python2.6/site-packages 
    Writing mysite-env/lib/python2.6/site.py 
    Writing mysite-env/lib/python2.6/orig-prefix.txt 
    Creating parent directories for mysite-env/include 
    Symlinking mysite-env/include/python2.6 
    Creating mysite-env/bin 
    New python executable in mysite-env/bin/python 
    Changed mode of mysite-env/bin/python to 0755 
    Testing executable with mysite-env/bin/python -c "import sys; print(sys.prefix)" 
    ERROR: The executable mysite-env/bin/python is not functioning 
    ERROR: It thinks sys.prefix is u'/usr' (should be '/vagrant/mysite-env') 
    ERROR: virtualenv is not compatible with this system or executable 

कोई विचार यह कैसे ठीक करें? धन्यवाद!

+0

इसे पोस्ट करने के लिए धन्यवाद। यह मुझे पूरी तरह से बट में वांछित पर समीक्षाबोर्ड स्थापित करने की कोशिश कर रहा है। अब मुझे निर्देशिका के रूप में/var/www मिला है, यह ठीक काम करता है! –

उत्तर

0

मैंने इस विशेष समस्या को पार नहीं किया है, लेकिन मैंने व्यक्तिगत रूप से virtualenv से pythonbrew का उपयोग करने से स्विच कर लिया है। pythonbrew एक ही समस्या का एक अलग समाधान है; यह रूबी समुदाय में rvm की तरह काम करता है: यह $HOME/.pythonbrew के तहत स्क्रैच से पाइथन के पूरी तरह से स्वयं निहित संस्करण बनाता है; फिर, यह शैल फ़ंक्शन प्रदान करता है जो आपको आसानी से एक से दूसरे में स्विच करने की अनुमति देता है (आपके लिए पथ संपादित करना आदि)। यह virtualenv के रूप में हल्के वजन के रूप में नहीं है, लेकिन यह सिस्टम पायथन पर भी पिगबैक नहीं करता है, इसलिए संपूर्ण सिम्लिंक समस्या दूर हो जाती है। आप कई पायथन संस्करण भी इंस्टॉल कर सकते हैं, भले ही वे बेस सिस्टम में स्थापित न हों।

आपका माइलेज निश्चित रूप से भिन्न हो सकता है, लेकिन pythonbrew मेरे लिए अच्छा काम कर रहा है।

+1

ध्यान दें कि आप पाइथन के किसी भी संस्करण के लिए वर्चुअलएन्व का उपयोग कर सकते हैं जो कि * सिस्टम पर स्थापित है, और आप सिस्टम-व्यापी साइट संकुल को नॉट-साइट-पैकेज के साथ अनदेखा कर सकते हैं। Virtualenvwrapper के साथ जोड़ा, यह बहुत साफ और साफ हो जाता है। ब्रायन सही है, हालांकि Pythonbrew आपको पाइथन का एक संस्करण स्थापित करने दे सकता है जो शुरू करने के लिए नहीं है। – Henry

+0

सहमत हुए। मेरा मतलब यह नहीं था कि वर्चुअलएव पाइथन के कई संस्करणों के लिए वातावरण नहीं बना सका; मैंने वह हर समय किया था। लेकिन यह मूल रूप से सिस्टम पर पहले से जुड़ा हुआ है, जबकि पायथनब्रा नहीं है। प्रत्येक दृष्टिकोण के अपने फायदे और नुकसान होते हैं। इन दिनों, मैं pythonbrew पसंद करते हैं। YMMV। –

2

यह त्रुटि होती है क्योंकि virtualenv.py फ़ाइल आप उपयोग कर रहे अजगर संस्करण है कि आप प्रयोग कर रहे हैं साथ संगत नहीं है .. python2.7 के लिए आप virtualenv.org साइट से बाइनरी downalod और फिर उन्हें संकलन करने की जरूरत

python setup.py install 

का उपयोग कर स्थापना के बाद से

virtualenv --no-site-packages <path to virtual env directory>/env/ 
5

आभासी वातावरण बनाने के लिए स्थापित बाइनरी (नहीं virtualenv.py फ़ाइल) का उपयोग अपनी एक सा हो गया की तरह लगता है के बाद से आप इस के लिए कहा।/Vagrant निर्देशिका के लिए वर्चुअलबॉक्स का फ़ाइल ड्राइवर प्रतीकात्मक लिंक पहचान नहीं सकता है जो वर्चुअलएन्व बहुत उपयोग करता है।

यह सबसे अच्छा के साथ एक सरल

mybox:/vagrant$ ln -s ~/.bashrc 
ln: failed to create symbolic link ./.bashrc': Protocol error` 

अद्यतन का प्रदर्शन किया जा सकता है: सांकेतिक लिंक के साथ आवारा की असंगति & virtualenv, मेरे आवारा बक्से के

क्योंकि/उदाहरणों थे कार्य/परियोजना विशिष्ट (केवल 1 virtualenv) । तो आवारा मेजबान पक्ष/उदाहरण फ़ोल्डर में मैं अजगर & virtualenv स्थापित करने के लिए एक छोटी स्क्रिप्ट रखने होगा, तो

pip install -r /vagrant/requirement 

आगे प्रलेखन यहां पाया जा सकता है। https://docs.vagrantup.com/v2/provisioning/basic_usage.html

उचित बैश if चेक के

(करता अजगर मौजूद हैं,/घर/आवारा/env मौजूद है), तो आप प्रावधान अपने बॉक्स एक बार और फिर कर सकते हैं एक फोन संलग्न अपने ~/env ताकि जब आप लॉग इन स्थापित सक्रिय करने के लिए, आपका पहले से ही सेटअप और जाने के लिए तैयार है।

+0

इसके लिए समाधान क्या है? – stephenmurdoch

+0

मैं एक मोबाइल फोन पर हूँ तो terse। योनि सिस्टम के लिए एक पीआईपी आवश्यकता फाइल जीप करना और होम वर्चुअल एनवी को होम डायरेक्टरी के तहत रखना सबसे अच्छा है। आप अपनी योनि साझा साझा निर्देशिका में स्टोर करने के लिए पिप्स कैशिंग फ्लैग का उपयोग कर सकते हैं, केवल वेनव नहीं – David

+0

वर्तनी गलती - जीप न रखें, स्थानीय कैशिंग को '/ vagrant/py_fast' में सहेजा जा सकता है या एक साझा निर्देशिका http: // pip में बेहतर हो सकता है। readthedocs.org/en/latest/user_guide.html#fast-local-installs ताकि अगर आपको नष्ट/पुनर्निर्माण की आवश्यकता है तो आप सब कुछ के लिए pypi काट सकते हैं लेकिन अपडेट (वास्तविकता यह है कि यदि आप की आवश्यकता है तो आप अक्सर अपडेट नहीं होंगे फ़ाइल)। – David

1

इस मुद्दे में पहले से ही कई जवाब हैं, लेकिन अगर मैं अगले व्यक्ति की सहायता करता हूं तो मैं अपना समाधान साझा करना चाहता हूं।

जहां मैं कमांड मामलों को चलाता हूं। मैं/vagrant साझा फ़ोल्डर के अंदर वर्चुअलएनवी env कमांड चला रहा था। वह मेरी गलती थी। जब मैं अपने होम डीआईआर पर वापस आ गया, तो वर्चुअलएनवी एनवी चलाएं, सब कुछ ठीक काम करता है।

+0

आप कैसे सुनिश्चित करते हैं कि आपके योनि पर स्थित पाइथन ऐप आपके होम निर्देशिका में वर्चुअल एनवी का उपयोग करता है? मैं अंदर/वारंटी निर्देशिका – stephenmurdoch

+0

से चलाते समय अपने/घर/वानर/एनवी निर्देशिका में देखने के लिए टोक्स प्राप्त करने की कोशिश कर रहा हूं, मैं "स्रोत ~/venv_name/bin/activate" चलाता हूं ऐप कोड "/ vagrant/webapps/app_name " मैंने कभी भी टोक्स का उपयोग नहीं किया है, लेकिन मुझे लगता है कि आप बस ../../ तक कर सकते हैं? –

संबंधित मुद्दे