解决Python在命令行中执行提示“No module named xxx”的方法

告诉编译器去哪里找

“将模块放在正确的位置” 这个解决方案对于以下几种情况可能并不适用:

  • 不希望将自己的模块填满Python解释器的目录;
  • 没有在Python解释器目录中的存储文件的权限;
  • 想将模块放在其他地方。

最后一点是 “想将模块放在其他地方”,那么就要告诉解释器去哪里找。我们之前通用的一种方法,就是编辑sys.path,但这不是通用的方法。标准的实现方法是在PYTHONPATH环境变量中包含模块所在目录。

PYTHONPATH环境变量的内容会因为使用的操作系统不同而有所差异(参见下面的 “环境变量” ),但从基本上来说,它与sys.path很类似——一个目录列表。

环境变量

  环境变量并不是Python解释器的一部分——它们是操作系统的一部分,基本上,它相当于Python变量,不过是在Python解释器外设置的。有关设置方法,你应该参考操作系统文档,这里只给出一些相关提示。

  在Unix和Mac OSX中,你可以在一些每次登录都要执行的shell文件内设置环境变量。如果你使用类似bash的shell文件,那么要设置的就是.bashrc,你可以在主目录中找到它。将下面的命令添加到这个文件中,从而将~/python加入到PYTHONPATH:

export PYTHONPATH=$PYTHONPATH:~/python

注意,多个路径以冒号分隔。其他的shell可能会有不同的语法,所以你应该参考相关的文档。

  对于Windows系统,你可以使用控制面板编辑变量。依次点击开始菜单→设置→控制面板。进入控制面板后,双击 “系统” 图标,在打开的对话框中选择 “高级” 选项卡,点击 “环境变量” 按钮。这时会弹出一个分为上下两栏的对话框:其中一栏是用户变量,另外一栏是系统变量,需要修改的是用户变量。如果你看到其中已经有PYTHONPATH项,那么选中它,单击 “编辑” 按钮进行编辑。如果没有,单击 “新建” 按钮,然后使用PYTHONPATH作为 “变量名”,输入目录作为 “变量值”。注意,多个目录以分号分隔。

  如果上面的方法不行,你可以编辑autoexec.bat文件,该文件可以在C盘的根目录下找到(假设是以标准模式安装的Windows)。用记事本(或者IDLE编辑器)打开它,增加一行设置PYTHONPATH的内容。如果想要增加目录C:\python,可以向下面这样做:

set PYTHONPATH=%PYTHONPATH%:C:\python

注意,你所使用的IDE可能会有自身的机制,用于设置环境变量和Python路径。


提示

  你不需要使用PYTHONPATH来更改sys.path。路径配置文件提供了一个有用的捷径,可以让Python替你完成这些工作。路径配置文件是以.pth为扩展名的文件,包括应该添加到sys.path的目录信息。空行和以#开头的行都会被忽略。以import开头的文件会被执行。为了执行路径配置文件,需要将其放置在可以找到的地方。对于Windows来说,使用sys.prefix定义的目录名(可以类似于C:\Python22);在Unix和Mac OSX中则使用site-packages目录(更多信息可以参见Python库参考中site模块的内容,这个模块在Python解释器初始化时会自动导入)。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,822评论 0 10
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,082评论 17 410
  • 三、模块命名空间 命名空间(名称空间)中保存了变量名到对象的映射。向命名空间添加变量名的操作过程涉及到绑定变量到指...
    常大鹏阅读 1,900评论 0 4
  • [译]The Python Tutorial#Modules 6. Modules 如果你从Python解释器中退...
    理查德成阅读 334评论 0 2
  • 不单你们女人喜欢看帅哥,其实我们男人也喜欢看帅哥,比如我每次心情低落的时候都喜欢照镜子,过后心情立马就好了
    CM_22d8阅读 198评论 0 0