为什么我在PyCharm中的zsh没有正确的$ PATH?

时间:2017-01-31 14:46:32

标签: python macos terminal pycharm zsh

我最近在学习python。我使用PyCharm作为我在MacBook中运行的编辑器。问题是当我在PyCharm终端输入类似scrapy -V的内容时,它告诉我“zsh:command not found:scrapy”,但是当我在PyCharm外面启动终端时,它可以正常工作。

所以我想知道路径var是否正确。然后我在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

我将shell路径设置为:/bin/zsh

顺便说一句,我也是IDEA,但是一切都运行得很好,shell路径与PyCharm中的相同。

那么,导致我的PyCharm终端(zsh)中的路径变量出错的原因是什么?

5 个答案:

答案 0 :(得分:19)

对我来说,将其添加到~/.zshrc文件的开头有帮助:

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

答案 1 :(得分:3)

我在zsh遇到这个问题。具体来说,我从PATH中丢失了/usr/local/bin。这是在Pycharm bug tracker中提交的 - 因此似乎没有真正的解决方法。

但是,通过charm命令直接从终端启动Pycharm会产生正确的PATH

答案 2 :(得分:1)

答案 3 :(得分:0)

我在from datetime import datetime def getTime(time_string): time_object = datetime.strptime(time_string,'%H:%M') #Covert string to time object return time_object.strftime('%I:%M %p') #Convert time object to AM/PM format getTime('11:30') Output: 11:30 am getTime('13:30') Output: 01:30 pm 的顶部添加slidesPerRow: 1 ,终端打印echo $PATH,而pycharm shell打印~/.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 shell中没有被调用。您可以在/usr/bin:/bin:/usr/sbin:/sbin的顶部添加/usr/libexec/path_helper,但这很慢,最好像eval $(/usr/libexec/path_helper)这样手动添加路径。

答案 4 :(得分:0)

在我的情况下(Pycharm 2018.3,Ubunt 16.04),您好,这似乎与我在运行PyCharm时首次配置Zsh的方式有关。

我尝试以上所有方法均未成功

在某个时候,我备份了我的.zshrc文件以及所有其他.zsh文件.zsh_history ...我删除了所有与zsh相关的文件,同时终端和PyCharm也关闭了。然后,我启动了终端get提示符,首次配置Zsh,选择“推荐的配置新安装方式”。关闭我的术语,重新开始,Zsh现在是默认的shell。然后启动PyCharm etvoilà!

没有其他问题。然后PyCharm在pipenv中用shell挂接终端,这在我遇到问题时不是这种情况。

Byobu也有些混乱,因为现在byobu在终端启动时启动,但是在Pycharm,Byobu不在那里,这很好。以前,终端和Pycharm终端都是一个实例,如果我已经存在,它将退出另一个实例(实际上是单个实例)。