【问题标题】:PATH error in BashBash 中的 PATH 错误
【发布时间】:2013-09-07 03:44:59
【问题描述】:

我正在使用 CentOS6 Bash 并尝试使用 Python 和 cx_Freeze。我不熟悉 PATH 和 Path 修改,这是服务器,我有点担心自己尝试(但我必须)。当我尝试 $cx_f/Freeze 时,我得到了 -bash: cx_Freeze: command not found - 任何 cx_Freeze setup.py 等...尝试(包括 module not found )也是如此。我的目标是使用 cx_freeze(一个 Python 捆绑工具)。 Bash 的 o/p 如下。

$ which python
  /usr/bin/python

$ sudo locate -b python | fgrep -w bin
[sudo] password for xyz: 

/usr/bin/abrt-action-analyze-python
/usr/bin/pip-python
/usr/bin/python
/usr/bin/python-config
/usr/bin/python-pip
/usr/bin/python2
/usr/bin/python2.6
/usr/bin/python2.6-config
/usr/local/cpanel/3rdparty/bin/python
/usr/local/cpanel/bin/ispythonversion2
/usr/local/cpanel/bin/ispythonversion2inbin

cx_Freeze 显然位于 /usr/lib/Python2.6/site-packages 由这个 o/p 证明

[xyz@server ~]$ ls
cpu  perl5  usr  xyz
[xyz@server ~]$ cd usr
[xyz@server usr]$ cd lib
[xyz@server lib]$ ls
python2.6
[xyz@server lib]$ cd python2.6
[xyz@server python2.6]$ ls
site-packages
[xyz@server python2.6]$ cd site-packages
[xyz@server site-packages]$ ls
cx_Freeze  cx_Freeze-4.3.1-py2.6.egg-info
[xyz@server site-packages]$ cd cx_Freeze
[xyz@server cx_Freeze]$ ls
bases     finder.py   freezer.pyc  hooks.pyo     initscripts  main.py   setupwriter.py   windist.py
dist.py   finder.pyc  freezer.pyo  __init__.py   macdist.py   main.pyc  setupwriter.pyc  windist.pyc
dist.pyc  finder.pyo  hooks.py     __init__.pyc  macdist.pyc  main.pyo  setupwriter.pyo  windist.pyo
dist.pyo  freezer.py  hooks.pyc    __init__.pyo  macdist.pyo  samples   util.so   

然后再说一遍:

[xyz@server ~]$ ls
cpu  cpu.py  perl5  usr  xyz
[xyz@server ~]$ cd usr
[xyz@server usr]$ ls
bin  lib  share
[xyz@server usr]$ cd bin
[xyz@server bin]$ ls
cxfreeze  cxfreeze-quickstart
[xyz@server bin]$ cxfreeze-quickstart
-bash: cxfreeze-quickstart: command not found

所以,这让我对 cx_Freeze 安装的位置更加困惑!更糟糕的是,正如 BM 所说,“但等等,还有更多!”

[xyzserver ~]$ sudo locate -b site-packages
[sudo] password for xyz: 
/usr/lib/python2.6/site-packages
/usr/lib64/python2.6/site-packages
/usr/share/xemacs/site-packages

为什么有这么多网站包。 /lib/ 和 /lib64/ 中的内容不同,/lib/ 中的内容包含我需要的内容——尽管两者都没有 cx_Freeze。

(我已经从上面的示例中删除了 Python,site-packages 结果,它对应于我创建的 virtualenv,因为它是我理解的并且可能会使事情复杂化。)

编辑:

[xyz@server ~]$ echo $PATH
/opt/apache-maven-3.0.5/bin:/home/vtripathi/perl5/bin:/usr/local/bin:/bin:/usr/bin:/usr/local  /sbin:/usr/sbin:/sbin:/home/vtripathi/bin

EDIt-2.0:

[xyz@server ~]$ ls
cpu  cpu.py  perl5  usr  xyz
[xyz@server ~]$ cd usr
[xyz@server usr]$ cd bin
[xyz@server bin]$ ls
cxfreeze  cxfreeze-quickstart
[xyz@server bin]$ cd cxfreeze
-bash: cd: cxfreeze: Not a directory
[xyz@server bin]$ pwd
/home/xyz/usr/bin

EDIT-3.0:

[xyz@server ~]$ PATH=/usr/lib/python2.6
[xyz@server ~]$ $PATH
-bash: /usr/lib/python2.6: is a directory
[xyz@server ~]$ PATH=/usr/lib/
[xyz@server ~]$ $PATH
-bash: /usr/lib/: is a directory
[xyz@server ~]$ 

【问题讨论】:

  • 您可以在交互终端中交互更改PATH;它只会影响该终端中的交互式外壳(而不影响系统的其余部分)。所以实验很容易。不要忘记使用which
  • 你能不能。解释什么是“交互式更改 PATH”?谢谢。
  • 在您的终端中输入PATH=/usr/bin:/bin: somethingelse 并重复此操作,直到您对PATH 感到满意为止。
  • 谢谢。我想看看是否可以在路径中的 /lib 处获得 cx_freeze。我尝试了该选项,但没有奏效。我在问题底部的 EDIT-3.0 下添加了 o/p。
  • 有些事情你似乎很困惑。 cx_Freeze 是一个 Python 模块,因此您可以通过在 Python 中执行 import cx_Freeze 来使用它。您可以从系统 shell 运行的命令是 cxfreeze~ 是您的主目录 (/home/xyz) 的简写。您的 cxfreeze 命令在/home/xyz/usr/bin 中,它与/usr/bin不同

标签: python linux bash path cx-freeze


【解决方案1】:
echo $PATH

~/usr/bin 在那里吗?或者cx_freeze的位置在哪里,你不用说清楚

【讨论】:

  • 谢谢。我忘了添加它。在问题底部添加了 o/p。 cx_freeze 是我认为在 /usr/bin/ - 给定上面的 o/p。
  • 在我看来它在 ~/usr/bin,如果我没看错,当你在那里时,你能“pwd”吗?
  • 添加了一个 edit-2.0 部分 - 如果这没有帮助,请告诉我。谢谢。
猜你喜欢
  • 2021-05-14
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 2016-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多