Linuxバージョンのpython、pipなどをWindowsで「ネイティブに」実行するのは素晴らしいですが、適切なIDEを使用して実行したいと思います。 SSHD互換性はまだ実装されていないので、PyCharmにLinux pythonをローカルインタープリターとして認識させようとしています。
Windows Linuxサブシステムをインストールした後、入力
bash -c python
windowsコマンドラインからpython Shell。
bash -c "echo \"print 'hello world'\" | python"
windowsシェルの出力として「hello world」を生成します!
これを.batファイルとしてまとめ、ローカルインタープリターとしてPyCharmに提示しようとしています。
python.bat:
C:\Windows\System32\bash.exe -c "echo %1 | python"
しかし、試してみたバリエーションに対しては、「sdkが無効のようです」と表示され続けます。 PyCharmがSDKを「検証」するために何をしているのか正確にはわからないので、これを克服するのは難しいです。
WSLでのPyCharmの使用PythonSSHの開始
PyCharmは、WSL Pythonをリモートインタープリターとして使用するようにのみ設定できます(これは他のパブリックAPIがないためです)。
ECDSA指紋に関するメッセージが表示された場合は、yと答えてください。パスワードプロンプトが表示されます。表示される場合、サーバーは正常に動作しています。
CTRL + Cでオフにし、デーモンモードでサーバーを起動します(Sudo service ssh start)。現在のWSLではupstartが壊れているように見えるため、最後のクライアントが切断されたときにWSLが停止するため、bash.exeを実行し、sshdを起動し、コンソールウィンドウを開いたままにする必要があります。 bash.exe -c "sudo service ssh start &&& sleep 999d"のようなwsl_ssh.batファイルを作成し、それを使用してsshを起動できます。
PyCharmの構成PyCharmは、WSLをリモートインタープリターとして使用するように構成する必要がありますが、Windowsの各ドライブはWSLの/ mnt /の適切なフォルダーにマップされるため、展開は不要です。したがって、マッピングを構成するだけで済みます。リモートインタープリターについては、 https://www.jetbrains.com/help/pycharm/2016.1/configuring-remote-python-interpreters.html を参照してください。ホスト名として127.0.0.1を使用し、最初のlxrun/installの後に入力したログインとパスワードを使用する必要があります。また、マッピングでC: `を/ mnt/c /`に設定する必要があります。以前の投稿のビデオをご覧ください。
著者:イリヤ・カザケビッチ
2016年6月14日、17:20
https://youtrack.jetbrains.com/issue/PY-19129#comment=27-146935
ほとんどのソリューションを試してみましたが、主な問題は、Windows上のOpenSSHをJetBrainsが推奨する7.5未満にダウングレードできないことです。
幸いなことに、彼らはこの問題を解決してくれました! Pycharm 2018.3の早期アクセスバージョンをダウンロードしました
https://blog.jetbrains.com/pycharm/2018/10/pycharm-2018-3-eap-7/
これがPyCharm Professional Editionでのみ使用可能であると述べて、bmjjrの答えを追加したいと思います。残念ながら、Community Editionではリモートインタープリター機能を使用できません。
Professional Editionでのみサポート
https://www.jetbrains.com/pycharm/features/editions_comparison_matrix.html
リモートintを介してサポートされます。最後のコメントを参照してください: https://youtrack.jetbrains.com/issue/PY-19129
まあ、私はmanagedい作業ハックを生成することができました。 Linuxサブシステムでpython-setuptoolsとpipを手動でインストールする必要があります。必ずPyCharmが提供するpipバージョンを使用してください。次のようなパスにあります。
C:\ Program Files(x86)\ JetBrains\PyCharm 2016.1.2\helpers\pip-7.1.0.tar.gz
次に、「c:\ Python」の下の「python.bat」として次のスクリプトを設定し、PyCharmがインタープリターとしてそれを指すようにします。
@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
これまでWindowsバッチファイルを実際に開発したことはないので、ひどいコーディングスタイルを許してください。
システムに合わせてディレクトリ構造を微調整する必要がある場合があります。また、Python.batによって呼び出された任意のpythonスクリプトの出力は、Linuxサブシステムの下の一時ファイルにパイプされ、その後、Windowsの下に入力されます。何らかの理由で、bashの出力をパイプしますWindows経由の.exeはエラーを引き起こします。
お役に立てれば。
更新:ひどいパイプ処理エラー(cf https://wpdev.uservoice.com/forums/266908-command-Prompt-console-bash-on -ubuntu-on-windo/suggestions/13425768-allow-windows-programs-to-spawn-bash )
いずれかの方法で、Add Python Interpreterダイアログを開きます。
エディターを使用している場合、最も便利な方法は、ステータスバーでPython Interpreterウィジェットを使用することです。ウィジェットをクリックし、[インタープリターの追加...].
[設定/環境設定]ダイアログ(Ctrl + Alt + S)を使用している場合は、[プロジェクト]、[プロジェクト通訳。 プロジェクトインタープリターの構成 アイコンをクリックし、[追加]を選択します。
ダイアログの左側のペインで、WSLをクリックします。
Anacondaを使用します。
.\rootfs\home\$UserName$\anaconda\envs\$Conda_Env$\bin\python3
Pyhtonを使用: WSLインタープリターの追加
Linuxディストリビューションを選択し、選択したLinuxディストリビューションのpython実行可能ファイルへのパスを指定します。
完了すると、新しいインタープリターがプロジェクトに追加され、デフォルトの mnt mappings が設定されます。
WSLでは仮想環境を作成できないことに注意してください。インストールするすべてのパッケージは、対応するシステムインタープリターに追加されます。 Sudoパスワードの入力を求められます。
参照: JetBrains