我正在尝试在运行 Bir Sur 11.2.3 的 Mac Mini 上设置开发环境。我可以向 .zshrc
文件添加命令,但它们似乎只能在我的主目录中工作。例如...
chris@chriss-mac-mini an_app % which flutter dart
flutter not found
dart not found
chris@chriss-mac-mini an_app % cd ~
chris@chriss-mac-mini ~ % which flutter dart
dev/flutter/bin/flutter
dev/flutter/bin/dart
我的 .zshrc 文件看起来像这样...
chris@chriss-mac-mini ~ % cat .zshrc
export PATH="$PATH:dev/flutter/bin"
为什么我在本机其他目录下无法使用flutter命令?
答案 0 :(得分:1)
export PATH="$PATH:dev/flutter/bin"
正在引用相对路径。
dev/flutter/bin
应该类似于 /Users/<user>/dev/flutter/bin
。
在终端中,转到 flutter bin 文件夹的目录并键入 pwd
。这是它应该引用的完整路径。
答案 1 :(得分:1)
简短回答:将 .zshrc 中的行更改为:
>>> import decimal
>>> decimal.getcontext().prec = 256
>>> from decimal import Decimal as D
>>> from numpy import float32 as f32
>>> a = D(f32("6.0847234e31").astype(float))
>>> b = D(f32("3.4028235e38").astype(float))
>>> res_act = (a+b).sqrt()
>>> res_calc = D(f32("1.8446744e19").astype(float)) # 2*sqrt(a/4 + b/4) in f32 precision
>>> res_best = D(f32("1.8446746e19").astype(float)) # obtained by brute-force
>>> abs(res_calc - res_act) > abs(res_best - res_act)
True # oops
长答案:您添加到 export PATH="$PATH:$HOME/dev/flutter/bin"
环境变量 PATH
的路径不以“/”开头,因此它是一个相对路径,意思是'将相对于您当前工作目录所在的位置进行解析。如果您在 dev/flutter/bin
(或任何您的主目录)中,它将解析为 /Users/cjmcqueen
,这可能是实际二进制文件所在的位置。但是如果您在 /Users/cjmcqueen/dev/flutter/bin
中,它会解析为 /random/other/path
,它甚至可能不存在(更不用说包含 /random/other/path/dev/flutter/bin
、flutter
等的二进制文件)命令)。
要解决此问题,您需要为二进制文件添加完整的绝对路径,而不是相对路径。在某些情况下,dart
会扩展到您的主目录的路径(因此 ~
会起作用),但并非在所有情况下。在这种特殊情况下,~/dev/flutter/bin
更好,因为在将它存储在 $HOME
变量中之前,shell 会将它扩展到您的主目录的绝对路径,因此您不必必须依靠其他东西来解决它。