OSX 的新手和从未找到的命令,所以我 'export' 它们。有没有办法永久修复它?

New to OSX and commands are never found so I 'export' them. Is there a way to fix it for good?

我是 bash 和我的 Mac 的新手(大约一周),并且只接触了 3 个月的编程。我一直 运行 遇到这个问题,它最终成为我的 bash 个人资料中的东西。

喜欢在我的 python 中更改环境变量所以命令像

PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH”

export DATABASE_URL=“postgresql://localhost/CHEESE”

export APP_SETTINGS=“config.DevelopmentConfig"

或者让我的 Postgres 在 python 工作我必须这样做

export PATH=/Applications/Postgres.app/Contents/Versions/9.3/bin/:$PATH

最近我刚刚安装了 virtualenvwrapper 并且不得不执行 sudo pip install virtualenvwrapper 并且 运行 bash 中的代码找不到它,除非我这样做

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

所以我做了一些研究,我认为我可以将它们永久添加到我的 'bash profile' 中。如果是这种情况,我有 2 个问题。

  1. 有什么方法可以避免首先手动添加导出。所以我可以让命令在安装后立即运行
  2. 如何将它们添加到我的个人资料中。我打开了我的 .bash_profile.swp,它看起来很吓人,所以我没有碰它,因为我觉得我会弄坏它。我不确定为什么我的 psycopg2 在行尾有一个随机路径(在第二个 link 中看到) http://imgur.com/jedEOn9 http://imgur.com/CYsgVmx

你是对的。将这些添加到您的 .bash_profile 将在您每次启动 shell 时设置环境变量。但是,正如 here 所解释的,最好将它们放在您的 .bashrc 中,然后从您的 .bash_profile 中获取。例如,

# put this in your .bashrc
PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
export DATABASE_URL="postgresql://localhost/CHEESE"
export APP_SETTINGS="config.DevelopmentConfig"
# etc...

# then put this in your .bash_profile
if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

这可以确保无论您如何启动 shell,变量都可以正确设置。您看到的 .swp 文件是由 Vim 创建的。无视就好。

不过,还有更好的方法。在您的计算机上安装软件的最简单和最干净的方法是使用包管理器,它会自动为您设置路径(除其他外)。对于 Mac,我建议使用 Homebrew。安装后,您可以执行以下操作

$ brew install ruby
$ ruby blah blah blah  # ruby gets put in the PATH for you!

对于 python,标准包管理器是 pip,您已经在使用它。但是,忠告:sudo pip 为作为 OS X 一部分的 python 2 安装软件包,根据个人经验,我建议不要这样做。相反,使用 Homebrew 安装 python 2,然后使用它附带的 pip(和 python)。