2010-02-01 9 views
9

मैं साइगविन के माध्यम से अपने विंडोज मशीन पर काम करने के लिए virtualenv[wrapper] प्राप्त करने का प्रयास कर रहा हूं। इन दिशाओं के आधार पर इंस्टॉल easy_install के साथ सफल है: http://www.doughellmann.com/docs/virtualenvwrapper/मैं वर्चुअलएन्वापर और साइगविन को सह-संचालन कैसे प्राप्त करूं?

समस्या तब होती है जब मैं mkvirtualenv [name_of_vir_env] का उपयोग करता हूं। मैं निम्नलिखित उत्पादन प्राप्त करें:

$ mkvirtualenv testenv 
New python executable in testenv\Scripts\python.exe 
Installing setuptools.................done. 
bash: D:\.virtualenvs/testenv/bin/postactivate: No such file or directory 
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postactivate': No such file or directory 
bash: D:\.virtualenvs/testenv/bin/predeactivate: No such file or directory 
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/predeactivate': No such file or directory 
bash: D:\.virtualenvs/testenv/bin/postdeactivate: No such file or directory 
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postdeactivate': No such file or directory 
ERROR: Environment 'D:\.virtualenvs/testenv' does not contain an activate script. 

testenv निर्देशिका के अंदर, वहाँ कोई bin उपनिर्देशिका, बल्कि केवल Lib और Scripts है। Scriptsactivate.bat जो इस विशेष वातावरण को सक्रिय करने के लिए इस्तेमाल किया जा माना जाता है है, हालांकि अगर मैं इस bash के माध्यम से बाहर चलाने का प्रयास मैं कोई त्रुटि मिलती है:

$ ./activate.bat 
./activate.bat: line 1: @echo: command not found 
./activate.bat: line 4: syntax error near unexpected token `(' 
./activate.bat: line 4: `if not defined PROMPT (' 

मैं bash से बाहर निकलें और activate.bat कॉल कर सकते हैं और इस वांछित में परिवर्तन वातावरण। लेकिन फिर bash में नहीं होने पर मैं workon कमांड, या virtualenvwrapper_bashrc में किसी अन्य का उपयोग नहीं कर सकता।

मैं दोनों को एक साथ काम करने के लिए कैसे प्राप्त कर सकता हूं, यानी bash में रहें ताकि मैं virtualenvwrapper_bashrc में कमांड का उपयोग कर सकूं?

उत्तर

1

इस पोस्ट में होनहार http://atbrox.com/2009/09/21/how-to-get-pipvirtualenvfabric-working-on-cygwin/

लग रहा है - क्वेंटिन

+0

अफसोस की बात है कि यह साइगविन के अपने पायथन का उपयोग करता है, जो 15 सितंबर '12 तक उच्चतम पर केवल पायथन 2.6.8 है। –

0

मैं virtualenv पता नहीं है, लेकिन मैं क्या cygwin से एक क्लासिक मिश्रित पथ वाक्य रचना मुद्दे की तरह लग रहा दिखाई दे रही है:

आपकी स्ट्रिंग है:

D:\.virtualenvs/testenv/bin/predeactivate 

लेकिन सिगविन बैकस्लैश को बचने के रूप में व्याख्या कर रहा है के लिए "।" चरित्र, उत्पादन:

D:.virtualenvs/testenv/bin/postactivate 

जो आपके द्वारा उद्धृत त्रुटि पाठ में है और स्पष्ट रूप से एक विकृत पथ है। अपने वास्तविक पर्यावरण चर की जांच करें - यह शायद डॉस/विंडोज पथ वाक्यविन्यास में है, जबकि आंतरिक भाग साइगविन/यूनिक्स सिंटैक्स में है।

यदि ऐसा है, तो दोनों भागों को एक साथ विभाजित करने के लिए os.path.join का उपयोग करने का प्रयास करें और देखें कि क्या आप उसमें से एक लगातार वाक्यविन्यास प्राप्त करते हैं।

3

मुझे वर्चुअलएन्वापर के साथ अनुभव नहीं हुआ है, लेकिन नियमित रूप से वर्चुअलनेव का उपयोग करें। मुझे नहीं लगता कि activate.bat को सिग्विन के तहत चलाने का इरादा है, यह नियमित विंडोज शैल में चलाने पर काम करता है। मुझे लगता है कि यदि आप साइगविन का उपयोग कर रहे हैं, तो आप कुछ और बिन/सक्रिय (यूनिक्स जैसे ओएस के संस्करण) का उपयोग करना चाहेंगे।

बैश के भीतर सिग्विन पर्यावरण मानक पर्यावरण सक्रियण से काफी भिन्न हो सकता है। बैट में भाग लेने की उम्मीद है, इसलिए एक सक्रिय स्क्रिप्ट ढूंढना जो बैश के साथ काम करेगा (शायद यूनिक्स संस्करण से एक प्रतिलिपि ढूंढें) शायद आपको जहां आप अपने वर्चुअलएन्व को बैश के भीतर चला सकते हैं।

+0

का उपयोग करना था। venv/scripts/सक्रिय – Jabez

1

यह मेरे लिए यह किया:

https://bitbucket.org/cliffxuan/virtualenvwrapper-for-cygwin-windows-python

वेनिला virtualenvwrapper Cygwin पर्यावरण समर्थन करने के लिए प्रतीत नहीं होता।

एक चेतावनी हालांकि यह है कि virtualenv का Scripts निर्देशिका के अंतर्गत निष्पादन स्क्रिप्ट केवल निष्पादन अगर आप उन्हें स्पष्ट रूप से python आदेश को पारित और ~ या कुछ और कि Cygwin परोक्ष एक रास्ता /cygdriv/c/... -इस के साथ शुरू धर्मान्तरित का उपयोग नहीं करते हैं देशी विंडोज पायथन उन पथों को नहीं देख सकते हैं।

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