首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装模块时无模块错误

安装模块时无模块错误
EN

Stack Overflow用户
提问于 2012-06-29 03:15:26
回答 3查看 3.6K关注 0票数 1

在过去的几天里,我一直在使用Think Python学习编程。今天我读到了第4章,它开始讨论需要Swampy,一个包(正确的术语?)在本章中,我用来讲授界面设计。

所以,说到我的问题,我被告知要输入的第一段代码是

代码语言:javascript
复制
from swampy.TurtleWorld import * 
world = TurtleWorld()
bob = Turtle()
wait_for_user()

当我运行它时,我得到以下错误

代码语言:javascript
复制
Traceback (most recent call last):
File "/Users/dylanevans/Documents/Code/Python/TurtleWorld.py", line 1, in <module>
from swampy.TurtleWorld import *
ImportError: No module named swampy.TurtleWorld

我已经使用pip和distutils安装和卸载了swampy,swampy在site-package中,当我询问解释器安装了什么模块时,swampy会显示出来。我只是不明白为什么我会得到这个错误。

另外,我的PYTHONPATH在末尾有'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/swampy‘。虽然它确实有两次,但我不知道这是否重要。

任何帮助都将不胜感激。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-14 21:59:10

打开一个终端并输入env | grep ^PYTHONPATH,希望您会得到如下所示:

代码语言:javascript
复制
PYTHONPATH=/python/path/with/write/access:/another/python/path

选择您拥有写入访问权限的路径之一,该路径将为OURPYPKGPATH=/python/path/with/write/access

如果不存在这样的PYTHONPATH,我们将在主目录中创建自己的PYTHONPATH,并确保python将来可以看到它:

代码语言:javascript
复制
mkdir ~/.ourPyPkgPath
echo 'export PYTHONPATH=$PYTHONPATH:~/.ourPyPkgPath' >> ~/.profile

在本例中,我们将使用OURPYPKGPATH=~/.ourPyPkgPath

现在安装swampy

代码语言:javascript
复制
easy_install -d $OURPYPKGPATH 'http://pypi.python.org/packages/source/s/swampy/swampy-2.1.1.tar.gz'

现在,为了设置PYTHONPATH环境变量,应该只需要使用source ~/.profile或注销再重新登录。

票数 2
EN

Stack Overflow用户

发布于 2012-07-14 23:12:13

另外,我的PYTHONPATH在末尾有'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/swampy‘。虽然它确实有两次,但我不知道这是否重要。

你是手动添加的吗?如果您在非标准位置安装包,那么应该修改PYTHONPATH -换句话说,如果您使用,不要使用pipeasy_install,但希望包在全局范围内可用。

要消除此类令人头疼的问题,建议使用虚拟python环境,您可以使用virtualenv创建该环境。安装virtualenv后:

代码语言:javascript
复制
burhan@lenux:~$ virtualenv --no-site-packages swampy
The --no-site-packages flag is deprecated; it is now the default behavior.
New python executable in swampy/bin/python
Installing distribute.............................................................................................................................................................................................done.
Installing pip...............done.
burhan@lenux:~$ source swampy/bin/activate
(swampy)burhan@lenux:~$ pip install swampy
Downloading/unpacking swampy
  Downloading swampy-2.1.1.tar.gz (46Kb): 46Kb downloaded
  Running setup.py egg_info for package swampy

Installing collected packages: swampy
  Running setup.py install for swampy

Successfully installed swampy
Cleaning up...
(swampy)burhan@lenux:~$ python
Python 2.7.3 (default, Apr 20 2012, 22:44:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from swampy.TurtleWorld import *
>>> quit()
(swampy)burhan@lenux:~$
票数 1
EN

Stack Overflow用户

发布于 2012-06-29 03:20:42

你安装了swampy模块了吗?如果没有,请遵循these instructions

要运行独立脚本,您可以将代码放入以下块中:

代码语言:javascript
复制
if __name__ == '__main__':
    world = TurtleWorld()
    bob = Turtle()
    wait_for_user()

这将告诉python在脚本被直接调用时执行代码。因此,如果你把它放在像swampFunction这样的函数中,并从不同的脚本中调用它,上面的代码块就不会运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11251394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档