【问题标题】:ImportError: No module named '...', unable add path to PYTHONPATHImportError:没有名为“...”的模块,无法将路径添加到 PYTHONPATH
【发布时间】:2016-09-10 05:04:38
【问题描述】:

This 是我想要做的。

但是在解决了这个问题之后,我遇到了这个错误:ImportError: No module named 'multiply'。我能想到的是我必须将模块的位置添加到PYTHONPATH

我在System variables 列表中找不到PYTHONPATH,所以我创建了一个(如here 所述),添加了所有路径,包括我需要的路径,但它没有解决问题。

所以,我重新安装了 Python 的所有功能,甚至包括我之前没有安装的功能。在我阅读解决方案的所有地方,都只写了set this like this 或类似的东西,但没有人说它们是在哪里定义的或它们是如何工作的。

因此我的问题出现了,为什么我不能在 System variables 中找到 variables 之类的 PYTHONPATHPYTHONHOME 而 Python says 它们可以设置或在哪里定义?

谁能解释环境变量(在 Python 的文档中提到)是如何工作的?

如何解决我的“ImportError”?

【问题讨论】:

  • 是什么让您认为安装程序设置了这些变量? (它没有。)
  • 可以设置并不意味着它们已经设置好了。 “环境变量是如何工作的”不是 Python 的问题,这也是一个你自己上网搜索就能回答的问题。

标签: python python-2.7 python-3.x environment-variables


【解决方案1】:

安装程序可能没有自动设置这些。如果您愿意,可以在命令提示符中自行设置:

SET variableName = value

或者,如果您使用 PowerShell:

$env:variableName = value

如果您根本不想使用系统命令,可以在 python 中使用 os 模块来完成:

import os
os.environ[variableName] = value


如果它们已经设置好,但您想向其中添加一些内容,则过程会有所不同。假设您尝试添加到 PYTHONPATH 的路径是 path

使用命令提示符:

SET PYTHONPATH=%PYTHONPATH%;path

Python:

import os
os.environ['PYTHONPATH'] = os.environ['PYTHONPATH'] + ";path"


如果你是正确的并且这是因为模块不在 PYTHONPATH 上而发生的,这应该将它添加到路径中并解决问题。 如果它不能修复ImportError,那么环境变量可能不是问题。

了解更多环境变量的链接:

  • http://www.digitalcitizen.life/simple-questions-what-are-environment-variables
  • https://en.wikipedia.org/wiki/Environment_variable
  • http://www.computerhope.com/jargon/e/envivari.htm

希望这会有所帮助。

【讨论】:

  • 不要使用os.putenv。使用os.environ[variableName] = value
  • 这是不好的做法还是什么?
  • 使用os.putenv对环境所做的更改不会反映在os.environ中,这会混淆其他读取环境的python代码。
  • 是的。 os.enivron 不是真正的字典。它是一个类似字典的对象,可将所有更改复制到环境中。
  • @PalashV 好吧​​,我希望你能弄清楚。很高兴能对你有所帮助。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 2015-04-05
  • 2013-03-11
相关资源
最近更新 更多