【发布时间】: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