Pythonpath对m不起作用

2024-09-24 02:27:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在做Learn Python the Hard Way的最后一个练习,它指出,在运行我一直在做的程序之前,必须设置Pythonpath环境变量,如下所示:

export PYTHONPATH=$PYTHONPATH:.

我已经做了这个,在它不起作用(我想这就是为什么当我试图运行我的程序,我得到一个重要的恐怖),我做了一些研究Python。从本质上讲,Pythonpath就是找到要导入的模块的位置。所以我将Pythonpath设置为我试图导入的模块的实际位置,但仍然没有结果。

这是我的目录:

  • User/myname/python_stuff/projects/GothonWeb
    • 垃圾箱/
      • init.py(当然有双下划线。)
      • 应用程序.py
    • 哥顿网/
      • init.py(当然有双下划线。)
      • 地图.py
    • 模板(web.py)
      • 游戏.html
      • index.html索引
      • layout.html格式
    • 等等等等。

我试图运行app.py,它试图导入main.py模块:

from gothonweb import maps

但我还是有个错误:

Traceback (most recent call last):
File "python_stuff/projects/GothonWeb/bin/app.py", line 2, in <module>
from gothonweb import maps
ImportError: No module named gothonweb

有人知道怎么回事吗?哦,还有其他一些细节。在MacOSXLion上运行Python2.7,如果有帮助的话。


Tags: 模块frompyimport程序appinithtml
3条回答

按如下方式运行应用程序:

$ cd ~/path/to/gothonweb/
python bin/app.py

但是,如果您这样做了:

$ cd bin/   # WRONG! WRONG! WRONG!
$ python app.py  # WRONG! WRONG! WRONG!

很多用户都会犯这个错误,here是Zed Shaw对为什么不这样运行你的应用程序的一个很好的解释!

那你做错了。在所有的python项目中,您不需要cd到一个较低的目录来运行东西。您可以保持在顶部,从那里运行所有内容,以便所有系统都可以访问所有模块和文件。

您必须告诉python在哪里加载包(即带有__init__.py文件的文件夹)。

为了避免上述错误,您可以将PYTHONPATH设置为包文件夹的绝对路径,然后不管您在哪个文件夹中,python都会找到您的包。

或者可以使用虚拟环境工具来帮助您管理它们。

好的,在python中添加到python路径,最简单的方法是在模块的顶部。

import sys
sys.path.append(stringofpath)

对于要添加的每个路径,您都可以回忆起这一点。

stringofpath/path/to/dir/,其中dir是您的项目所在的目录。不是你的项目目录。然后使用从项目目录开始的普通点表示法,继续降序到所有子目录中。

在你的例子中,你的stringofpath'User/myname/python_stuff'

随着您的进步,您将不得不花一些认真的时间学习您的python路径,有很多东西是很难找到的。环境变量——至少在linux中——在/etc/environment中永久设置。

相关问题 更多 >