web-dev-qa-db-ja.com

PyCharmのzshに正しい$ PATHがないのはなぜですか?

私は最近pythonを学んでいます。そして、MacBookで実行しているエディターとしてPyCharmを使用しています。問題は、PyCharmターミナルでscrapy -Vのようなものを入力すると、「zsh :コマンドが見つかりません:scrapy」ですが、PyCharmの外部でターミナルを起動すると問題なく動作します。

だから私はパス変数が正しいかどうか疑問に思っています。そして、PyCharmターミナルでecho $ PATHを試しましたが、次のように返されます。

/usr/bin:/bin:/usr/sbin:/sbin

そしてPyCharmの外の端末は以下を返します:

/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands

シェルパスを次のように設定します:/bin/zsh

ちなみに私もIDEAですが、そこにあるものはすべて問題なく動作し、シェルパスはPyCharmにあるものと同じです。

では、PyCharmターミナル(zsh)のパス変数が間違っている原因は何ですか?

12
Liang

私にとって、これを~/.zshrcファイルの先頭に追加すると次のようになりました。

# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
19
Daniel Dubovski

Zshでこの問題が発生します。具体的には、PATHから/usr/local/binを失います。これは Pycharmバグトラッカー -にファイルされているので、実際の修正はないようです。

ただし、Pycharmをターミナルからcharmコマンドを介して直接起動すると、正しいPATHになります。

3
Robotnik

これはPyCharmが変数を正しく継承していないことによる問題だと思います。ここにリンクがあります https://intellij-support.jetbrains.com/hc/en-us/community/posts/208567485-Pycharm-terminal-is-missing-part-of-PATH

1
PlugaruT

_echo $PATH_の先頭に_~/.zshrc_を追加すると、ターミナルは_/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/aria2/bin:/usr/local/MacGPG2/bin:/Applications/Wireshark.app/Contents/MacOS_を出力し、pycharmシェルは_/usr/bin:/bin:/usr/sbin:/sbin_を出力します。

したがって、_/usr/libexec/path_helper_はpycharmシェルでは呼び出されないようです。 _~/.zshrc_の先頭にeval $(/usr/libexec/path_helper)を追加できますが、速度が遅く、_export PATH=$HOME/bin:/usr/local/bin:$PATH_のように手動でパスを追加することをお勧めします。

0
benymor

こんにちは私の場合(Pycharm 2018.3、Ubunt 16.04)、PyCharmを実行しているときにZshを初めて構成する方法に関連しているようです。

私は上記のすべてを試しましたが成功しませんでした。

ある時点で、自分の.zshrcファイルと他のすべての.zshファイル.zsh_historyをバックアップします...ターミナルとPyCharmも閉じている間に、すべてのzsh関連ファイルを削除しました。次に、ターミナルでZshを初めて構成するようにプロンプ​​トを表示し、新しいインストールを構成するための推奨方法を選択しました。用語を閉じて、最初からやり直してください。Zshがデフォルトのシェルになりました。次に、PyCharmetvoilàを開始します!!

もう問題ありません。そして、PyCharmはpipenvでShellを使用してターミナルを起動しますが、問題が発生したときはそうではありませんでした。

屏風もターミナルで起動時に打ち上げられているので、屏風との混同もありましたが、Pycharmには屏風がありません。以前は、ターミナルとPycharmターミナルの両方が一種の単一インスタンスでしたが、私が存在していた場合は、もう一方のインスタンス(実際には単一インスタンス)を終了します。

0
Richard