मैं PyCharm के टर्मिनल के अंदर एक virtualenv कैसे सक्रिय करूं?


110

मैंने Pyharm को सेट किया है, अपना virtualenv (या तो आभासी env कमांड के माध्यम से, या सीधे PyCharm में बनाया है) और उस वातावरण को मेरे Interpreter के रूप में सक्रिय किया है। सब कुछ ठीक चल रहा है।

हालाँकि, अगर मैं "टूल, ओपन टर्मिनल" का उपयोग करके एक टर्मिनल खोलता हूं, तो जो शेल प्रॉम्प्ट दिया गया है वह वर्चुअल एनवी का उपयोग नहीं कर रहा है; मुझे अभी भी source ~/envs/someenv/bin/activateइसे सक्रिय करने के लिए उस टर्मिनल के भीतर उपयोग करना है।

एक अन्य तरीका पर्यावरण को एक खोल में सक्रिय करना है, और उस वातावरण से PyCharm को चलाना है। यह "काम करने योग्य" है, लेकिन बहुत बदसूरत है, और इसका मतलब है कि मुझे बड़ी समस्याएं हैं अगर मैं पर्यावरण या परियोजनाओं को PyCharm से स्विच करता हूं: मैं अब पूरी तरह से गलत वातावरण का उपयोग कर रहा हूं।

क्या वर्चुअल टूल को स्वचालित रूप से सक्रिय करने के लिए "टूल, ओपन टर्मिनल" के कुछ और आसान तरीके हैं?

जवाबों:


95

संपादित करें:

Https://www.jetbrains.com/pycharm/whatsnew/#v2016-3-venv-in-terminal के अनुसार , PyCharm 2016.3 (नवंबर 2016 को जारी) में बॉक्स से बाहर के टर्मिनलों के लिए वायरलटेनव समर्थन है

Auto virtualenv को bash, zsh, fish और Windows cmd के लिए सपोर्ट किया गया है। आप सेटिंग्स (वरीयताएँ) में अपनी शेल वरीयता को अनुकूलित कर सकते हैं | उपकरण | टर्मिनल।


पुरानी विधि:

.pycharmrcअपने होम फोल्डर में एक फाइल बनाएं जिसमें निम्नलिखित सामग्री हो

source ~/.bashrc
source ~/pycharmvenv/bin/activate

अंतिम पैरामीटर के रूप में अपने virtualenv पथ का उपयोग करना।

फिर शेल सेट करें-> प्रोजेक्ट सेटिंग्स-> शेल पथ टू

/bin/bash --rcfile ~/.pycharmrc

9
धन्यवाद! मैंने शेल की आरसी फ़ाइल को ओवरराइड करने के बारे में नहीं सोचा था। कई प्रोजेक्ट्स के साथ काम करने वाले pycharm को बेहतर सपोर्ट करने के लिए, प्रत्येक के पास एक अलग वर्चुअन हो सकता है, मैं "। Pycharmrc" फाइल को कुछ अलग कहूंगा, और शायद इसे env डाइरेक्टरी में डाल दूंगा। ~/pycharmenv/bin/terminalactivateएक अच्छे विकल्प की तरह लगता है।
क्रिस कोगडन

1
Pycharm 4 में IDE में वर्चुअलनेव्स को एकीकृत किया गया है। अधिक जानकारी के लिए मेरा जवाब देखें।
pferate

1
@PeterGibson, pferate के जवाब का ओपी के सवाल से कोई लेना-देना नहीं है। समस्या टर्मिनल है पायथन दुभाषिया नहीं। PyCharm 4 से पहले वेव एकीकरण किया गया है। हालांकि आपका जवाब काम करता है।
नोर्बर्ट

1
यह सबसे सरल समाधान है, सिवाय इसके कि मैं .pycharmrcप्रोजेक्ट होम फ़ोल्डर में अपना स्थान रखता हूं , ताकि मेरे पास प्रत्येक प्रोजेक्ट के लिए एक अलग फाइल हो सके। ठीक से कॉन्फ़िगर की गई परियोजना में, .pycharmrcफ़ाइल को पूर्ण पथ प्रदान करने की आवश्यकता नहीं है ।
तक्षकवार्ती

1
@SiminJie, PyCharm 2016.3.2 के पास बॉक्स से ऐसा विकल्प है। पर जाएँ: सेटिंग्स -> उपकरण -> टर्मिनल। और सुनिश्चित करें कि "virtualenv सक्रिय करें" विकल्प सक्षम है।
रिंस्की

45

अपडेट करें:

सेटिंग्स (वरीयताएँ) में वरीयताएँ | उपकरण | टर्मिनल वैश्विक हैं।
यदि आप प्रत्येक प्रोजेक्ट के लिए एक वेनव का उपयोग करते हैं, तो वर्तमान पथ चर और एक डिफ़ॉल्ट वेनव नाम का उपयोग करना याद रखें:

"cmd.exe" /k ""%CD%\venv\Scripts\activate"" 

विंडोज उपयोगकर्ताओं के लिए: वर्चुअल वातावरण के साथ PyCharm का उपयोग करते समय, आप वर्चुअल वातावरण को स्वचालित रूप से सेट /Kकरने के cmd.exeलिए पैरामीटर का उपयोग कर सकते हैं ।

PyCharm 3 या 4: Settings, Terminal, Default shellऔर जोड़ने /K <path-to-your-activate.bat>

PyCharm 5: Settings, Tools, Terminal, और ऐड/K <path-to-your-activate.bat> के लिए Shell path

PyCharm 2016.1 या 2016.2: Settings, Tools, Terminal, और जोड़ने ""/K <path-to-your-activate.bat>""के लिए Shell pathऔर जोड़ने (मन उद्धरण)। Cmd.exe के आसपास उद्धरण भी जोड़ें, जिसके परिणामस्वरूप:

"cmd.exe" /k ""C:\mypath\my-venv\Scripts\activate.bat""


इस मामले %CD%में वर्तमान कार्यशील निर्देशिका है, वर्तमान निर्देशिका में पूर्ण पथ प्राप्त करने के लिए विंडोज शेल कमांड
bad_coder

40

विंडोज के तहत PyCharm और वर्चुअल वातावरण का उपयोग करते समय विंडोज उपयोगकर्ताओं के लिए, आप वर्चुअल वातावरण को स्वचालित रूप से सेट करने के लिए cmd.exe के लिए / k पैरामीटर का उपयोग कर सकते हैं।

सेटिंग्स, टर्मिनल, डिफ़ॉल्ट शेल पर जाएं और जोड़ें /K <path-to-your-activate.bat>

मेरे पास पहले की प्रतिक्रिया पर टिप्पणी करने की प्रतिष्ठा नहीं है इसलिए इस सही संस्करण को पोस्ट करना। यह वास्तव में बहुत समय बचाता है।

अपडेट करें:

नोट: Pycharm अब सीधे आभासी वातावरण का समर्थन करता है और यह मेरे लिए अच्छी तरह से काम करने लगता है - इसलिए मेरे वर्कअराउंड की अब आवश्यकता नहीं है।


यह बहुत अच्छा है, लेकिन केवल तब जब आपके पास अपनी सभी परियोजनाओं के लिए सिर्फ एक वर्चुअन हो। डिफ़ॉल्ट शेल सेटिंग को प्रोजेक्ट्स पर साझा किया जाता है
मार्टिनएम

7

पीटर और प्रयोग के उत्तर के आधार पर, मैं एक अच्छा "सामान्य समाधान" लेकर आया हूं, जो निम्नलिखित हल करता है:

  • लॉगिन शेल के व्यवहार को पुनर्स्थापित करता है। PyCharm आम तौर पर एक लॉगिन शेल चलाता है, लेकिन --rcfile ने ऐसा करना बंद कर दिया है। स्क्रिप्ट अभी भी --rcfile का उपयोग करती है, लेकिन लॉगिन शेल के INVOCATION व्यवहार का अनुकरण करने का प्रयास करती है।
  • प्रत्येक वातावरण के लिए एक आरसीफाइल बनाने की आवश्यकता को हटाता है
  • यदि आप परिवेश बदलते हैं, तो प्रोजेक्ट सेटिंग्स को अपडेट करने की आवश्यकता को निकालता है।

इस स्क्रिप्ट को एक बिन निर्देशिका में कहीं छोड़ दें। जैसे ~ ~ बिन / pycharmactivate

if [ -r "/etc/profile" ] ; then . /etc/profile ; fi
if [ -r "~/.bash_profile" ] ; then
    . ~/.bash_profile
elif [ -r "~/.bash_login" ] ; then
    . ~/.bash_login
elif [ -r "~/.profile" ] ; then
    . ~/.profile
fi
ACTIVATERC=`cat .idea/workspace.xml | perl -n -e 'print "\$1/bin/activate" if m:option name="SDK_HOME" value="\\\$USER_HOME\\\$(.*)/bin/python":'`
if [ -n "$ACTIVATERC" ] ; then . "$HOME/$ACTIVATERC" ; else echo "Could not find virtualenv from PyCharm" ; fi

फिर PyCharm के शेल पथ को निम्न पर सेट करें:

/bin/bash --rcfile ~/bin/pycharmactivate

1
धन्यवाद! यह मेरे लिए काम करने के घंटों के असफल प्रयासों के बाद यह पता लगाने के लिए शुरू किया गया कि बशकेन और बैश प्रोफाइल कहां से शुरू करें। हालांकि यह फेंक दिया और त्रुटि हुई कि यह मेरे वर्चुअल एनवी को नहीं पा सकता है इसलिए मैंने इसे इस तरह संशोधित किया, क्या आप मुझे बता सकते हैं कि क्या यह ठीक है? if [ -r "/etc/profile" ] ; then . /etc/profile ; fi if [ -r "~/.bash_profile" ] ; then . ~/.bash_profile elif [ -r "~/.bash_login" ] ; then . ~/.bash_login elif [ -r "~/.profile" ] ; then . ~/.profile fi source ~/learnp/project1/venv/bin/activate
19

@zerohedge: आपकी स्क्रिप्ट ठीक काम करेगी, लेकिन यह आपके "प्रोजेक्ट 1" वर्चुअनव के लिए तय है। ऊपर की स्क्रिप्ट को ऑटो-डिटेक्शन करना चाहिए था, लेकिन वहाँ मान्यताओं का एक गुच्छा बनाया जा रहा है: कि प्रारंभिक कार्य निर्देशिका ".idea" निर्देशिका का स्थान है; कार्यस्थान। xml फ़ाइल का स्वरूप महत्वपूर्ण रूप से नहीं बदलता है। दुर्भाग्य से, ऐसा लगता है कि pycharm संस्करण 5 ने उस क्षेत्र में महत्वपूर्ण बदलाव किए हैं। मैं वास्तव में यह पता नहीं लगा सकता कि डेटा अब कहां है।
क्रिस कॉगडन 21

अच्छी तरह से मुझे इस परियोजना के आधार पर अपने जोड़ को बदलने में कोई आपत्ति नहीं है, क्योंकि शैल पथ भी परियोजना विशिष्ट है। मुझे आपकी स्क्रिप्ट खोजने से पहले केवल एक संकेत "बैश 3.2 $:" मिल सकता है, जिसमें मेरी वर्तमान निर्देशिका या मेरे टर्मिनल प्रॉम्प्ट के किसी भी प्रकार का कोई संकेत नहीं है। फिर से धन्यवाद!
21

7

PyCharm 4 में अब IDE में virtualenvs एकीकृत है। अपने प्रोजेक्ट इंटरप्रेटर का चयन करते समय, आप एक virtualenv बना सकते हैं, जोड़ सकते हैं या चुन सकते हैं। उन्होंने एक "पायथन कंसोल" जोड़ा है जो कॉन्फ़िगर किए गए प्रोजेक्ट दुभाषिया में चलता है।

अधिक जानकारी यहाँ।


11
यह ओपी का जवाब कैसे देता है? अभी भी source /path/to/venv/bin/activateटर्मिनल में मैन्युअल रूप से करना है।
13:11

6

धन्यवाद क्रिस, आपकी स्क्रिप्ट ने कुछ प्रोजेक्ट्स के लिए काम किया, लेकिन मेरी मशीन पर नहीं। यहां एक स्क्रिप्ट है जो मैंने लिखी है और मुझे आशा है कि कोई भी इसे उपयोगी पाता है।

#Stored in ~/.pycharmrc 

ACTIVATERC=$(python -c 'import re
import os
from glob import glob

try:
  #sets Current Working Directory to _the_projects .idea folder
  os.chdir(os.getcwd()+"/.idea") 

  #gets every file in the cwd and sets _the_projects iml file
  for file in glob("*"): 
    if re.match("(.*).iml", file):
      project_iml_file = file

  #gets _the_virtual_env for _the_project
  for line in open(project_iml_file):
    env_name = re.findall("~/(.*)\" jdkType", line.strip())
    # created or changed a virtual_env after project creation? this will be true
    if env_name:
      print env_name[0] + "/bin/activate"
      break

    inherited = re.findall("type=\"inheritedJdk\"", line.strip())
    # set a virtual_env during project creation? this will be true
    if inherited:
      break

  # find _the_virtual_env in misc.xml
  if inherited:
    for line in open("misc.xml").readlines():
      env_at_project_creation = re.findall("\~/(.*)\" project-jdk", line.strip())
      if env_at_project_creation:
        print env_at_project_creation[0] + "/bin/activate"
        break
finally:
  pass
')

if [ "$ACTIVATERC" ] ; then . "$HOME/$ACTIVATERC" ; fi

धन्यवाद, यह मेरे लिए काम किया! हालांकि दो अतिरिक्त चीजें करनी थीं। 1) source /etc/profile~ /। Pycharmrc फ़ाइल की शुरुआत में जोड़ें (Mac Yosemite पर) 2) Pycharm में वरीयताएँ संपादित करें> टूल्स> टर्मिनल> शेल पथ को "/ बिन / bash --rcfile ~ / .pycharmrc
frnhr

यह बहुत बढ़िया है, धन्यवाद! यदि आप पायथन 3 का उपयोग कर रहे हैं, तो प्रिंट फ़ंक्शन के लिए कोष्ठक लगाना याद रखें। मुझे खुद इस स्क्रिप्ट से पहले "निर्यात ~ / .bashrc" डालना था।
राफेल गोमेस

5

मैंने उपरोक्त सभी उत्तर देखे हैं, लेकिन उनमें से कोई भी मेरे लिए पर्याप्त नहीं है। Pycharm 2017.1.3 (मेरे कंप्यूटर में), खोलने Settings->Tools->Terminalऔर जांचने Shell integrationऔर Activate virtualenvविकल्पों में सबसे आसान तरीका है ।

छवि


खैर, स्वीकार किए गए उत्तर ने इसी बात को उद्धृत किया। यह सिर्फ यह है कि यह तस्वीर नहीं है।
विकास प्रसाद

5

यदि आप विंडोज़ संस्करण का उपयोग कर रहे हैं तो यह काफी आसान है। यदि आपके पास पहले से ही आभासी वातावरण है तो बस उसके फ़ोल्डर में जाएँ, फ़ोल्डर के activate.batअंदर खोजें Scripts। इसे पूरा पथ कॉपी करें और इसे pycharm के टर्मिनल में पेस्ट करें और फिर दबाएं Enter!

यदि आपको नया वर्चुअल वातावरण बनाने की आवश्यकता है:

फाइल> सेटिंग्स पर जाएं फिर project interpreterइसे खोजें, इसे खोलें, गियर बटन पर क्लिक करें और जहां चाहें वातावरण बनाएं और फिर पहले पैराग्राफ का पालन करें।

गीयर!


बहुत बढ़िया जवाब! धन्यवाद! त्वरित प्रश्न। मेरे पास 3 अलग-अलग आभासी वातावरण हैं जो मैंने एनाकोंडा में बनाए हैं। क्या activate.batउनमें से प्रत्येक के लिए अलग है?
user1700890

1
@ user1700890 हाँ! यदि आपने वातावरण को अधिलेखित नहीं किया है, तो उनके पास अलग-अलग फ़ोल्डर होने चाहिए और परिणामस्वरूप, अलग-अलग activate.batफाइलें। यदि आपको उत्तर पसंद है, तो बेझिझक
उठो

धन्यवाद, मैंने अभी जाँच की है, फ़ोल्डर में कोई फ़ोल्डर नहीं हैं Scripts। इसके अलावा Pycharm की शिकायत है कि activate.batएक मान्य अजगर SDK नहीं है
user1700890

1
इसलिए मुझे लगता है कि आपको पहले प्रयास करना चाहिए और वर्चुअल-एन्वायरनमेंट फ़ोल्डर को बनाना चाहिए जब आप एनाकोंडा का उपयोग कर रहे हों और फिर उसके activateअंदर बैच फ़ाइल चलाएँ । या यदि यह आपके लिए संभव है, तो बस एक नया वातावरण बनाएं।
अमीनादिमी

3

मैक पर यह PyCharm => प्राथमिकताएँ ... => उपकरण => टर्मिनल => वर्चुअलाइजेशन को सक्रिय करता है , जिसे डिफ़ॉल्ट रूप से सक्षम किया जाना चाहिए।


2

मैंने अभी-अभी अपने होम डायरेक्टरी में pycharmactivate नाम की स्क्रिप्ट जोड़ी है। Pyharm (4.0.1) फ़ाइल> सेटिंग> टूल> टर्मिनल> शेल पथ को / bin / bash --rcfile ~ / pycharmactivate का मान सेट करें। हो सकता है कि आपके पास अलग-अलग प्रोजेक्ट और वर्चुअनल डायरेक्टरी / नाम हों, लेकिन यह मेरे लिए कारगर नहीं है। इस स्क्रिप्ट में निम्नलिखित 3 पंक्तियाँ हैं और मान लिया गया है कि आपके virtualenv का नाम आपके प्रोजेक्ट dir के समान है।

source ~/.bashrc
projectdir=${PWD##*/}
source ~/.virtualenvs/$projectdir/bin/activate


1

मेरे पास एक समाधान है जो मेरी विंडोज 7 मशीन पर काम करता है।

मेरा मानना ​​है कि PyCharm का टर्मिनल इसे चलाने का एक परिणाम है cmd.exe, जो विंडोज PATHचर को लोड करेगा , और पायथन के संस्करण का उपयोग करेगा जो इसे पहले पाता है PATH। इस चर को संपादित करने के लिए, मेरा कंप्यूटर -> गुण -> उन्नत सिस्टम सेटिंग्स -> उन्नत टैब -> पर्यावरण चर ... बटन पर राइट क्लिक करें। सिस्टम चर खंड के भीतर, चर का चयन करें और संपादित करें PATH

यहाँ मेरे संपादन PATH से पहले प्रासंगिक हिस्सा है :

C: \ Python27 \;
C: \ Python27 \ लिब \ साइट-संकुल \ पिप \;
C: \ Python27 \ स्क्रिप्ट;
C: \ Python27 \ लिब \ साइट-संकुल \ Django \ बिन;

... और संपादन के बादPATH (अब केवल 3 लाइनें):

सी: [project_path] \ virtualenv-Py2.7_Dj1.7 \ लिब \ साइट-संकुल \ पिप;
सी: [project_path] \ virtualenvs \ virtualenv-Py2.7_Dj1.7 \ स्क्रिप्ट;
सी: [project_path] \ virtualenvs \ virtualenv-Py2.7_Dj1.7 \ लिब \ साइट-संकुल \ Django \ बिन;

इसका परीक्षण करने के लिए, एक नया विंडोज़ टर्मिनल खोलें ( स्टार्ट -> टाइप इन cmdएंड हिट Enter) और देखें कि क्या यह आपके वर्चुअल वातावरण का उपयोग कर रहा है। यदि यह काम करता है, तो PyCharm को पुनरारंभ करें और फिर PyCharm के टर्मिनल में इसका परीक्षण करें।


1

यह वही है जो मैं कर रहा हूं: एक सोर्स_ फोल्ड में एक सक्रिय_एनवी.बीएटी (विंडोज़, हो सकता है। लिनक्स में) फ़ाइल बनाएं:

/env_yourenvlocate/scripts/activate.bat

और एक अन्य फ़ाइल निष्क्रिय करें_env.bat:

/env_yourenvlocate/scripts/deactivate.bat

हर बार टर्मिनल विंडो खोलें, बस virtualenv को सक्रिय / निष्क्रिय करने के लिए बैट फाइल को निष्पादित करें, आप स्रोत कोड पथ में रहेंगे, पथ को वापस और बदलने की कोई आवश्यकता नहीं है।

E:\Projects\django_study\src>active_env.bat

E:\Projects\django_study\src>../env_django_study/scripts/activate.bat
(env_django_study) E:\Projects\django_study\src>



(env_django_study) E:\Projects\django_study\src>deactive_env.bat

(env_django_study)E:\Projects\django_study\src>../env_django_study/scripts/deactivate.bat
E:\Projects\django_study\src>

1

यदि आपका Pycharm 2016.1.4v और उच्चतर आपको "default path" /K "<path-to-your-activate.bat>" उद्धरण चिह्नों का उपयोग नहीं करना चाहिए


1

यदि आपने अपनी परियोजना को किसी अन्य निर्देशिका में स्थानांतरित कर दिया है, तो आप सेटिंग संवाद के माध्यम से नया पथ सेट कर सकते हैं। और फिर आपको एडिट कॉन्फ़िगरेशन डायलॉग में इस प्रोजेक्ट इंटरप्रेटर को सेट करना होगा।

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


0

एक और विकल्प अपने आभासी वातावरण का प्रबंधन करने के लिए virtualenvwrapper का उपयोग करना है। ऐसा प्रतीत होता है कि एक बार जब virtualenvwrapper स्क्रिप्ट सक्रिय हो जाती है , तो pycharm उसका उपयोग कर सकता है और फिर सरल workonकमांड pycharm कंसोल से उपलब्ध होगा और आपको उपलब्ध वर्चुअल वातावरण के साथ प्रस्तुत करेगा:

kevin@debian:~/Development/django-tutorial$ workon
django-tutorial
FlaskHF
SQLAlchemy
themarkdownapp
kevin@debian:~/Development/django-tutorial$ workon django-tutorial
(django-tutorial)kevin@debian:~/Development/django-tutorial$ 

1
हालाँकि, इसके लिए मुझे हर बार टर्मिनल खोलने के दौरान वर्कऑन स्क्रिप्ट को सक्रिय करना होगा, और यह जानना होगा कि वर्तमान में प्रोग्राम को चलाने के लिए कौन सा वर्चुअल वातावरण pycharm उपयोग कर रहा है, दोनों मैं स्पष्ट रूप से बचने की कोशिश कर रहा था।
क्रिस कॉगडन

@ क्रिसचोग्डन आह, मैं देख रहा हूं
ksaylor11

0

इस पद्धति को प्रति प्रोजेक्ट मनमाने ढंग से आभासी वातावरण के साथ काम करना चाहिए और यह आपके पर्यावरण पर धारणा नहीं बनाता है क्योंकि यह आपके द्वारा बनाए गए हुक का उपयोग कर रहा है।

तुम लिखो:

  • एक वैश्विक स्क्रिप्ट जो हुक को आमंत्रित करती है
  • PyCharm परियोजना प्रति एक हुक स्क्रिप्ट (अनिवार्य नहीं)

यह देखते हुए कि वर्तमान नवीनतम PyCharm (सामुदायिक 2016.1) प्रति प्रोजेक्ट के लिए टर्मिनल सेटिंग्स की अनुमति नहीं देता है जो उस स्क्रिप्ट के साथ शुरू होती है जो प्रोजेक्ट विशिष्ट हुक को लागू करती है। यह मेरा है ~/.pycharmrc:

if [ -r ".pycharm/term-activate" ]; then
   echo "Terminal activation hook detected."
   echo "Loading Bash profile..."
   source ~/.bash_profile
   echo "Activating terminal hook..."
   source ".pycharm/term-activate"
   source activate $PYCHARM_VENV
fi

यदि आप बैश के अलावा किसी और चीज का उपयोग कर रहे हैं, तो अपनी .bash_profileइच्छा के अनुसार अपने खुद के सामान का चालान करें ।

अब इस स्क्रिप्ट को लागू करने के लिए अपने PyCharm "टूल्स -> टर्मिनल -> शैल पथ" को सेट करें, जैसे: /bin/bash --rcfile ~/.pycharmrc

अंत में, प्रत्येक PyCharm प्रोजेक्ट के लिए आपको एक विशिष्ट वर्चुअल वातावरण सक्रिय करने की आवश्यकता है, PyCharm प्रोजेक्ट रूट के भीतर एक फ़ाइल बनाएं .pycharm/term-activate। यह आपका हुक है और यह आपके PyCharm प्रोजेक्ट के लिए वांछित आभासी वातावरण के नाम को परिभाषित करेगा:

export PYCHARM_VENV=<your-virtual-env-name>

आप निश्चित रूप से अपने हुक को अपने विशेष PyCharm परियोजना के टर्मिनल वातावरण में उपयोगी पाते हैं।


0

विंडोज़ पर कोंडा आभासी वातावरण के लिए, सुनिश्चित करें कि आपकी बैच फ़ाइल का नाम नहीं है activate.batक्योंकि इससे कोंडा activateकमांड के साथ संघर्ष होगा , जिसके परिणामस्वरूप बैच फ़ाइल का पुनरावर्ती कॉलिंग होगा।

मेरे लिए निम्न शैल पथ क्या है:

"cmd.exe" /k ""C:\FullPathToYourProject\activate-env.bat""

और सक्रिय- env.bat फ़ाइल में:

call activate myenvname

0

मैं प्रत्येक प्रोजेक्ट के लिए एक अलग वर्चुअल वातावरण चाहता था, और इसे सुविधाजनक बनाने के लिए अतिरिक्त फ़ाइलों की परवाह नहीं करता था। एक समाधान जो आपको केवल एक बार करने की आवश्यकता है और सभी परियोजनाओं के लिए काम करता है, फिर निम्नलिखित को अपने .bashrcया में जोड़ रहा है .bash_profile:

if [ -d "./venv" ]; then
    source ./venv/bin/activate
fi

यह जांचता है कि क्या कोई आभासी वातावरण है जहां टर्मिनल खोला जा रहा है, और यदि ऐसा है तो इसे सक्रिय करें (और निश्चित रूप से अन्य रिश्तेदार पथों का उपयोग किया जा सकता है)। PyCharm की टर्मिनल सेटिंग्स को उनके डिफ़ॉल्ट के रूप में छोड़ा जा सकता है।


0

PyCharm 4.5.4

निम्न सामग्रियों के साथ अपने घर के फ़ोल्डर में एक फ़ाइल .pycharmrc बनाएँ

source ~/.bashrc
source ~/pycharmvenv/bin/activate

अंतिम पैरामीटर के रूप में अपने virtualenv पथ का उपयोग करना।

फिर शेल सेट करें-> प्रोजेक्ट सेटिंग्स-> शेल पथ टू

/bin/bash --rcfile ~/.pycharmrc

मैं क्यों नहीं, लेकिन यह मेरे लिए काम नहीं करता है। PyCharm एक त्रुटि प्रिंट करता है।

cmd.exe /K "<path-to-your-activate.bat>" यह काम करता है, लेकिन यह प्रत्येक प्रोजेक्ट के लिए एक ही virtualenv बनाता है, और यहां तक ​​कि अगर यह आवश्यक नहीं है।

यह रसीद काम कर रही है! लेकिन स्ट्रिंग में /env_yourenvlocate/scripts/activate.batइस तरह उद्धरण होने चाहिए "Full_path_to_your_env_locate\scripts\activate.bat"!

Virtualenv को निष्क्रिय करना बहुत आसान है - टर्मिनल में टाइप करें 'निष्क्रिय करें'

(virt_env) D:\Projects\src>deactivate
D:\Projects\src>

"मैं क्यों नहीं, लेकिन यह मेरे लिए काम नहीं करता है" - शायद क्योंकि यह समाधान लिनक्स / मैक के लिए अच्छा है - विंडोज़ के लिए नहीं? ;)
नीर अल्फ़ासी

0

WSL के लिए समाधान (विंडोज पर उबंटू)

यदि आप WSL (उबंटू ऑन विंडोज) का उपयोग कर रहे हैं, तो आप pycharm में टर्मिनल के रूप में बैश भी खोल सकते हैं और एक linux virtualenv को सक्रिय कर सकते हैं।

.pycharmrcपीटर गिब्सन के उत्तर में वर्णित फ़ाइल का उपयोग करें ; .pycharmrcनिम्नलिखित सामग्री के साथ अपने घर निर्देशिका में फ़ाइल जोड़ें :

source ~/.bashrc
source ~/path_to_virtualenv/bin/activate

Pycharm फ़ाइल में सेटिंग्स> उपकरण> टर्मिनल निम्नलिखित 'शेल पथ' जोड़ें:

"C:/Windows/system32/bash.exe" -c "bash --rcfile ~/.pycharmrc"


प्रोजेक्ट विशिष्ट virtualenv

आपके virtualenv को पथ .pycharmrcनिरपेक्ष होने की आवश्यकता नहीं है। आप अपने प्रोजेक्ट डायरेक्टरी से रिलेटिव पाथ सेट करके एक प्रोजेक्ट स्पेसिफिक वर्चुअन सेट कर सकते हैं। मेरा वर्चुअलाइव हमेशा मेरे प्रोजेक्ट डायरेक्टरी के अंतर्गत 'वेनव' फोल्डर में स्थित होता है, इसलिए मेरी .pycharmrcफाइल इस तरह दिखती है:

source ~ / .bashrc
 source ~ / pycharmvenv / bin / activate #absolute path
source ./venv/bin/activate # संबंधित मार्ग


बोनस: वर्चुअलाइजनेव को प्रोजेक्ट दुभाषिया के रूप में जोड़ने के लिए स्वचालित रूप से ssh सुरंग खोले

अपनी .pycharmrcफ़ाइल में निम्न जोड़ें :

if [ $(ps -aux | grep -c 'ssh') -lt 2 ]; then
    sudo service ssh start 
fi

यह जांचता है कि क्या एक ssh सुरंग पहले से ही खुली हुई है, और अन्यथा एक को खोलता है। में फ़ाइल -> सेटिंग्स -> परियोजना -> परियोजना दुभाषिया Pycharm में, निम्न कॉन्फ़िगरेशन के साथ एक नया रिमोट दुभाषिया जोड़ें:

+ -------------------------- + ---------------------- ----------- + ------- + ---- +
| नाम: | <व्याख्याकार नाम> | | |
| का चयन करें | 'एसएसएच क्रेडेंशियल्स' | | |
| होस्ट: | 127.0.0.1 | पोर्ट: | 22 |
| उपयोगकर्ता: | <लिनक्स उपयोगकर्ता नाम> | | |
| प्रामाणिक प्रकार: | 'पासवर्ड' | | |
| पासवर्ड: | <लिनक्स पासवर्ड> | | |
| अजगर दुभाषिया पथ: | <अपने virtualenv के लिए लिनक्स पथ> | | |
| पायथन हेल्पर्स पथ: | <स्वचालित रूप से सेट करें> | | |
+ -------------------------- + ---------------------- ----------- + ------- + ---- +

अब जब आप अपना प्रोजेक्ट खोलते हैं, तो आपका बैश स्वचालित रूप से आपके virtualenv में शुरू होता है, एक ssh सुरंग खोलता है, और pycharm virtualenv को दूरस्थ दुभाषिया के रूप में जोड़ता है।

चेतावनी: विंडोज में अंतिम अपडेट स्वचालित रूप से स्टार्टअप पर एक SshBroker और SshProxy सेवा शुरू करता है। ये ssh टनल को linux से windows में ब्लॉक करते हैं। आप टास्क मैनेजर -> सेवाओं में इन सेवाओं को रोक सकते हैं, जिसके बाद सब कुछ फिर से काम करेगा।


0

टर्मिनल में प्रवेश करते समय आपके पास एक विकल्प> रन> डीबग> कॉन्फ़िगरेशन कॉन्फ़िगर करें यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

उपयुक्त conda environmnent का चयन करें .. इसके अलावा जब आप एक नया प्रोजेक्ट बनाते हैं - यह इस स्थान को कॉन्फ़िगर करने के लिए कहता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.