2016-05-03 30 views
27

पाइथन, पीआईपी आदि के लिनक्स संस्करणों को चलाने के दौरान विंडोज़ पर "मूल रूप से" अद्भुत है, मैं एक उचित आईडीई का उपयोग करके ऐसा करना चाहता हूं। चूंकि एसएसएचडी संगतता अभी तक लागू नहीं की गई है, इसलिए मैं स्थानीय दुभाषिया के रूप में लिनक्स पायथन को पहचानने के लिए पायचर्म प्राप्त करने की कोशिश कर रहा हूं।विंडोज़ लिनक्स उपप्रणाली (विंडोज़ पर बैश) पर पाइथन को पहचानने के लिए पाइचर्म प्राप्त करना

विंडोज लिनक्स सबसिस्टम स्थापित करने,

bash -c python 
खिड़कियों कमांड लाइन से

टाइपिंग एक अजगर खोल में आप छोड़ देंगे के बाद।

bash -c "echo \"print 'hello world'\" | python" 

विंडोज़ शैल में आउटपुट के रूप में "हैलो वर्ल्ड" का उत्पादन करने के साथ-साथ काम करता है!

मैं एक .bat फ़ाइल के रूप में इस लपेट और एक स्थानीय दुभाषिया के रूप में PyCharm को प्रस्तुत करने के लिए कोशिश कर रहा हूँ, यानी

python.bat:

C:\Windows\System32\bash.exe -c "echo %1 | python" 

लेकिन मैं बार आ रही है "एसडीके मैं कोशिश करता हूं कि किसी भी बदलाव के लिए अवैध लगता है। चूंकि मुझे यकीन नहीं है कि पीडी चार्म एसडीके को "मान्य" करने के लिए क्या कर रहा है, इसे दूर करना मुश्किल है।

+0

आप अजगर के लिए रास्तों की स्थापना की थी? – 123

+2

कृपया ध्यान दें कि यह विंडोज़ इंस्टॉल पर एक विशिष्ट पायथन नहीं है। मैं विंडोज लिनक्स सबसिस्टम के भीतर पायथन तक पहुंचने का प्रयास कर रहा हूं (https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux देखें)। इसे पथ के माध्यम से हल नहीं किया जा सकता है। –

+2

इसके लिए एक खुला सुविधा अनुरोध है, आप इसका अनुसरण कर सकते हैं (और वोट): https://youtrack.jetbrains.com/issue/PY-19129 –

उत्तर

4

ठीक है, मैंने एक बदसूरत काम कर रहा हैक बनाने में कामयाब रहा है। आपको लिनक्स उपप्रणाली के तहत मैन्युअल रूप से पायथन-सेटअपटोल और पीआईपी स्थापित करना होगा। PyCharm द्वारा प्रदान किए गए पीआईपी संस्करण का उपयोग करना सुनिश्चित करें, आपको इसे इस तरह के पथ पर मिलेगा:
सी: \ प्रोग्राम फ़ाइलें (x86) \ Jetbrrains \ PyCharm 2016.1.2 \ helpers \ pip-7.1.0.tar। GZ

तो सेटअप "python.bat" के रूप में निम्न स्क्रिप्ट के तहत

@echo off 
@setlocal enableextensions enabledelayedexpansion 
:: Requiers pip and setuptools to already be installed on linux subsystem 
Set "Pattern= " 
Set "Replace=\ " 
Set "cdrive=C:" 
Set "linpath=/mnt/c" 
:: Iterate over arguments, convert paths to linux format and concatinate 

set argCount=0 
for %%x in (%*) do (
    set /A argCount+=1 
    set arg=%%x 
    :: Backward slash to forward slash 
    SET arg=!arg:\=/! 
    :: C drive to /mnt/c/ - default linux subsystem mount point 
    SET arg=!arg:%cdrive%=%linpath%! 
    :: Space to escaped space 
    SET arg=!arg:%Pattern%=%Replace%! 
    :: Parethesis to escaped parenteses 
    SET arg=!arg:^(=\^(! 
    SET arg=!arg:^)=\^)%! 
    :: Deqoute voodoo via http://ss64.com/nt/syntax-dequote.html 
    SET arg=###!arg!### 
    SET arg=!arg:"###=! 
    SET arg=!arg:###"=! 
    SET arg=!arg:###=! 
    if "!args!"=="" (
     set args=!arg! 
    ) else (
     set args=!args! !arg! 
    ) 
) 
:: Dump it to the interpreter 
:: Output is piped inside the Linux subsys, as windows piping for bash seems broken 
START "Terrible hack to avoid pipe error" /W /MIN C:\Windows\System32\bash.exe -c "python !args! > /mnt/c/Python/test" 
:: Output resulr from piped file 
type c:\Python\test 
:: echo !args! 
EXIT /B > NUL 

, भयानक कोडिंग शैली माफ कर के रूप में मैं कर दिया है:: एक दुभाषिया के रूप में यह करने के लिए "ग \ अजगर" और बिंदु PyCharm पहले कभी विंडोज़ बैच फाइलों को विकसित नहीं किया।

आपको अपने सिस्टम से मेल खाने के लिए निर्देशिका संरचना को ट्विक करना पड़ सकता है। यह भी ध्यान रखें कि Python.bat द्वारा बुलाए गए किसी भी पायथन स्क्रिप्ट का आउटपुट लिनक्स उपप्रणाली के तहत एक अस्थायी फ़ाइल में पाइप किया गया है, फिर विंडो के नीचे वापस टाइप किया गया है। किसी कारण से, विंडोज़ के माध्यम से bash.exe के आउटपुट को पाइप करने से त्रुटियां होती हैं।

उम्मीद है कि इससे मदद मिलती है।

अद्यतन: आदेश भयानक पाइप से निपटने त्रुटियों से बचने के (सी.एफ़ https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13425768-allow-windows-programs-to-spawn-bash)

+0

यदि आपने इसे आजमाया है और त्रुटि प्राप्त की है: "विंडोज नहीं ढूंढ सकता है 'सी: \ विंडोज \ System32 \ bash.exe'। सुनिश्चित करें कि आपने सही नाम टाइप किया है और फिर पुन: प्रयास करें।", सुनिश्चित करें कि आप PyCharm को व्यवस्थापक के रूप में चला रहे हैं । स्थापना निर्देशिका पर नेविगेट करें (कुछ 'सी: \ प्रोग्राम फ़ाइलें (x86) \ JetBrains \ PyCharm 2016.1.2 \ bin' या 'C: \ Users \ \ AppData \ Local \ JetBrains \ Toolbox \ apps \ PyCharm-P \ ch-0 \ 145.1504.1 \ bin' यदि आप जेटब्रेन टूलबॉक्स ऐप का उपयोग कर रहे हैं), 'pycharm.exe' या' pycharm64.exe' पर राइट क्लिक करें, ** गुण **, ** संगतता ** चुनें, फिर चेक करें "इस प्रोग्राम को व्यवस्थापक के रूप में चलाएं"। – breandan

+0

मुझे – user1946989

4

दूरदराज के पूर्णांक के माध्यम से समर्थित में "स्टार्ट" के साथ कॉल करने के लिए "पार्टी" लपेटा। https://youtrack.jetbrains.com/issue/PY-19129

+3

बल्ले जोड़ने की कोशिश करते समय पिचर्म से "अमान्य पायथन दुभाषिया" त्रुटि संदेश मिल रहा है कृपया लिंक से निकालें शामिल करें। यह बेहतर स्टैक ओवरफ्लो अनुभव है और टूटी हुई लिंक नाटक को रोकता है। – antitoxic

16

Win10 पर WSL अजगर के साथ PyCharm का उपयोग SSH शुरू

PyCharm केवल रिमोट अनुवादक के रूप में WSL अजगर (यह अन्य सार्वजनिक एपीआई की कमी के कारण है) का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है: पिछले टिप्पणी देखें।

  • Win10 बिल्ड 14361 या बाद में स्थापित करें। आप अपने वर्तमान अंदरूनी पूर्वावलोकन को भी अपग्रेड कर सकते हैं।(Lxrun की तरह कुछ/install` & & lxrun/अद्यतन)
  • WSL स्थापित
  • भागो bash.exe
  • अद्यतन करने के लिए नवीनतम संस्करण sudo apt-get अद्यतन & & sudo apt-get उन्नयन
  • खुला/आदि/ssh/sshd_config
    • पासवर्ड प्रमाणीकरण सक्षम करें (जब तक कि आप सार्वजनिक कुंजी का उपयोग नहीं करना चाहते)। ओपन/etc/ssh/sshd_config, और पासवर्ड प्रमाणीकरण हाँ सेट करें।
    • के बाद से chroot WSL (अभी तक) में लागू नहीं है, आप भी सेट UsePrivilegeSeparation कोई
    • बचाना और उसे बंद यह
  • प्रकार sudo $ (sudo जो sshd) अग्रभूमि पर OpenSSH को चलाने के लिए -d (करने की जरूरत है डीबग के लिए यह बहुत आसान है)। आप
  • एक और bash.exe सत्र कोशिश ssh 127.0.0.1
  • आप ECDSA फिंगर प्रिंट, जवाब y के बारे में संदेश दिखाई देता है से "0.0.0.0 पोर्ट 22 पर सुन सर्वर" की तरह कुछ देखना चाहिए। आपको पासवर्ड प्रॉम्प्ट देखना चाहिए। यदि आप इसे देखते हैं, तो आपका सर्वर सही तरीके से काम करता है।

  • इसे CTRL + C के साथ बंद करें, और सर्वर को डिमन मोड (सुडो सेवा एसएसएच स्टार्ट) में प्रारंभ करें। ऐसा लगता है कि वर्तमान डब्लूएसएल पर अपस्टार्ट टूटा हुआ है, इसलिए आपको bash.exe चलाने की आवश्यकता होगी, sshd शुरू करें और कंसोल विंडो खोलें क्योंकि WSL बंद हो जाता है जब अंतिम क्लाइंट डिस्कनेक्ट हो जाता है। आप wsl_ssh.bat फ़ाइल बना सकते हैं जैसे bash.exe -c "सुडो सेवा एसएसएच शुरू & & & नींद 999 डी" और एसएसएच लॉन्च करने के लिए इसका इस्तेमाल करें।

कॉन्फ़िगर PyCharm PyCharm, दूरस्थ दुभाषिए के रूप में लेकिन तैनाती से बाहर के साथ WSL उपयोग करने के लिए कॉन्फ़िगर किया जाना चाहिए के बाद से विंडोज पर प्रत्येक ड्राइव WSL में में/MNT/उचित फ़ोल्डर में मैप किया गया है। तो, आपको केवल मैपिंग को कॉन्फ़िगर करने की आवश्यकता है। दूरस्थ दुभाषिया के लिए, https://www.jetbrains.com/help/pycharm/2016.1/configuring-remote-python-interpreters.html देखें। आपको 127.0.0.1 का उपयोग होस्ट नाम के रूप में करना चाहिए, और लॉगिन और पासवर्ड जो आपने पहले lxrun/install के बाद दर्ज किया था। आपको अपने मैपिंग में सी: `to/mnt/c /` भी सेट करना चाहिए। पिछली पोस्ट से वीडियो देखें।

लेखक: इल्या Kazakevich
14 जून 2016 17:20

https://youtrack.jetbrains.com/issue/PY-19129#comment=27-1469350

+0

यह स्वीकार्य उत्तर होना चाहिए – ThatAintWorking

0

मैं करते हुए कहा कि इस केवल PyCharm व्यावसायिक संस्करण के साथ उपलब्ध है द्वारा bmjjr के जवाब जोड़ना चाहते हैं ।रिमोट दुभाषिया सुविधा, समुदाय संस्करण के साथ उपलब्ध नहीं है के रूप में मैं दुर्भाग्य से पता चला:

व्यावसायिक संस्करण में केवल समर्थित

  • Cython
  • Django
  • AppEngine
  • बोतल
  • Jinja2
  • मको
  • web2py
  • पिरामिड
  • प्रोफाइलर
  • SQLAlchemy
  • आरेख
  • रिमोट दुभाषियों, दूरस्थ डीबगिंग, Vagrant, डोकर
  • डुप्लिकेट कोड का पता लगाने
  • कोड कवरेज
  • पुलिस फाइलों समर्थन
  • BDD समर्थन
  • प्रोफाइलर एकीकरण
  • थ्रेड कन्करेंसी दृश्य

https://www.jetbrains.com/pycharm/features/editions_comparison_matrix.html

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