如果ZDOTDIR设置为自定义文件夹,则PyCharm zsh shell没有完整的用户路径变量
我的PyCharm zsh shell没有完整的用户路径环境变量 目前,在PyCharm首选项中,我的shell路径是如果ZDOTDIR设置为自定义文件夹,则PyCharm zsh shell没有完整的用户路径变量,shell,terminal,path,pycharm,zsh,Shell,Terminal,Path,Pycharm,Zsh,我的PyCharm zsh shell没有完整的用户路径环境变量 目前,在PyCharm首选项中,我的shell路径是/bin/zsh 自定义配置在~/.zshenv ZDOTDIR=$HOME/zshconfig 它没有我在我的~/zshconfig/.zprofile或~/zshconfig/.zshrc中添加的任何其他$PATH或别名 此外,尝试从PyCharm将zsh作为交互式登录shell运行也不起作用。(将PyCharm shell路径设置为:/bin/zsh--interactiv
/bin/zsh
自定义配置在~/.zshenv
ZDOTDIR=$HOME/zshconfig
它没有我在我的~/zshconfig/.zprofile
或~/zshconfig/.zshrc
中添加的任何其他$PATH或别名
此外,尝试从PyCharm将zsh作为交互式登录shell运行也不起作用。(将PyCharm shell路径设置为:/bin/zsh--interactive--login
不起作用)
如何在PyCharm中运行正常的终端环境?此答案应适用于sh、bash、zsh和fish Shell 问题是PyCharm有一个称为“Shell集成”的选项。
要在“Shell集成”选项上引用其网站: 将终端与系统外壳集成,以正确跟踪会话的命令历史记录,并加载带有所需环境变量的自定义配置文件 Shell集成适用于sh、bash、zsh和fish Shell。
这样做的目的是创建一个定制的shell环境(由PyCharm管理),该环境不源于
~/.zprofile
或~/.zshrc
(仅供参考:
~/.zshenv
始终是源代码)
有3个选项可用于添加环境变量。
在PyCharm终端设置中,您可以添加
PATH
::$PATH
作为环境变量。(每个项目可能需要这样做)
.zshenv
中导出$PATH变量将
export PATH=“:$PATH”
添加到您的.zshenv
文件中。这将应用于任何运行的shell不仅仅是登录和交互式shell。
ZDOTDIR=$HOME/zshconfig
之前,这是一个解决办法。我最初的解决方案仍然有效,但这似乎是实际问题
如果“Shell集成”选项处于启用状态,
PyCharm不在$ZDOTDIR之后这意味着如果您的
.zshrc
位于自定义文件夹中(例如~/zshconfig/.zshrc
),PyCharm将不会读取它。PyCharm将只查看默认位置,即~/.zshrc
我想知道是否有人有办法让PyCharm跟随你的$ZDOTDIR
!
目前,我更好的解决方案是在我的主目录中创建一个文件,并从我的自定义文件位置获取源文件
创建PyCharm直接读取的文件~/.zshrc
:
# For debugging which file gets sourced
#echo "interactive shell (~/.zshrc)"
# PyCharm reads this file directly, doesn't follow "ZDOTDIR=$HOME/zshconfig"
# If this file gets read directly, source my custom location:
source ~/zshconfig/.zshrc
分别针对
~/.zprofile
好吧,这是我的第三个答案
在~/.zshenv
不幸的是,PyCharm不支持“FOO=bar/bin/zsh”符号,因此我们需要一个包装器脚本来启动它
我们要做的是让PyCharm使用我们定制的$ZDOTDIR
目录。
在主目录中添加文件~/pycharm_zsh.sh
:将“~/zshconfig”更改为配置的正确路径
使该脚本可执行:
chmod+x~/pycharmzsh.sh
在pycharm中,将“Shell路径”设置为自定义脚本:
/Users//pycharm_zsh.sh
我从未使用过pycharm,但似乎你可以。如果你在那里定义一个变量pycharm=YES
,你就可以在你的zsh启动文件中查询这个变量,并且只有在从pycharm终端运行时才应用某些设置。这些文件从来不是由pycharm本身提供的,而是由zsh启动的,当然,我们可以将参数传递给这个Zsh,以在一定程度上影响启动行为。既然你说.zshenv
被处理了,我们至少可以得出结论,PyCharm至少没有摆弄ZDOTDIR变量,而且由于生成的shell是交互式的,.zshrc
也被源化了。如果你真的认为墨水它不会被来源(这在我看来像一个bug),您总是可以手动获取它。@user1934428这是一个有趣的想法。在PyCharm中设置它,然后在.zshenv
中检查PYTCHARM
。这是真的,手动获取.zprofile
和zshrc
的源代码?@user1934428我在我的Mac上测试了它,默认情况下,.zshrc
不是源代码。也许这只是一个bugOnly当从PyCharm内部运行时?这会很奇怪。否则,我也在Mac上使用zsh,它的工作方式与广告一样。您是如何验证您的.zshrc未被处理的?包装可以写得稍短一些,如ZDOTDIR=~/zshconfig/bin/zsh--login--interactive
。因为/bin
很可能在路径中,y您不需要提供到zsh的绝对路径。由于zsh连接到tty,我想您不需要--interactive
,因为这应该是默认路径;但这肯定是您最好测试的。
#!/bin/sh
export ZDOTDIR=~/zshconfig
/bin/zsh --login --interactive