找不到模块-我无法从外部运行使用PyCharm开发的.py文件

时间:2019-06-16 03:11:26

标签: python pycharm

我正在使用PyCharm开发一个python项目,该项目使用一个名为win10toast的外部库。我已经使用PyCharm安装了win10toast。但是,当我尝试使用cmd运行.py文件(即从外部运行python文件)时,出现错误:

ModuleNotFoundError: No module named 'win10toast'.

我有python 3.6.4。我使用PyCharm安装了win10toast。

from win10toast import ToastNotifier

我希望程序能够正常运行,但是目前我收到ModuleNotFound错误。

3 个答案:

答案 0 :(得分:1)

Python可能难以正常运行,因为它对依赖项的安装位置(例如外部库和软件包)很敏感。如果您将Python安装到一个目录中,但不小心将外部库安装到了另一个目录中,则在运行.py程序时,它将无法从外部库中调用,因为它与Python运行时所在的库中不存在从。

查找在计算机上安装Python的位置,然后查找外部库的安装位置。找到外部库的安装位置后,将其整个程序包内容移至安装Python的相同目录。或者更好的方法是,使用pip将外部库重新安装到与Python相同的目录中。

如果您使用的是Mac,Python及其相关的依赖项通常存储在/ User / bin中的某个位置。如果您使用的是Windows,它将存储在C://目录中的某个位置(可能存储在C:\ Users \ username \ Local \ AppData中的某个位置)。如果您使用的是Linux,它将存储在/ usr / bin中的某个位置。无论您做什么,都不要将Python从任何地方移开,因为有时可能会干扰某些操作系统(例如Mac)的系统,例如Mac,Mac带有自己的Python版本(我相信Python 2.7已经过时了)。

最后,您的计算机上可能有两个不同版本的Python,这很常见; Python 2.7和Python 3+。如果您使用一个版本编写程序,但从另一个版本运行程序,则只能从安装了该版本的任何Python版本中调用外部库。尝试使用python3而不是python(而不是python)运行.py程序,然后看看会发生什么。如果它与另一个版本的python一起使用,则表明您在另一个版本的目录中安装了外部库。

那应该可以解决您的问题。

答案 1 :(得分:1)

我建议您不要使用PyCharm安装软件包,至少不要 如果结果与在命令行中执行“ pip安装”有一点偏差。我认为没有理由让PyCharm参与配置Python安装。只是在找麻烦。

我承认我对我建议您避免的做法不熟悉。自问世以来的差不多一周,我就一直在使用PyCharm(之前是IntelliJ Python插件的狂热用户),并且从未考虑过在命令行中安装Python模块。这样,我确定这些模块的去向正确(安装在哪个基本的Python或venv中)。另外,我知道我正在尽一切努力使在PyCharm中运行代码与在命令行中运行代码之间的差异最小化。我的建议完全基于这种实践,对我来说从来没有出错。

我安装了多个基本的Python版本,并在其中定义了数十个venv。 PyCharm非常擅长于让我指出要应用于任何项目或运行/调试配置中的哪一个,并无缝地使用它们。但是,再次,我仅在命令行上管理这些环境。

就一个模块在单个源代码树中引用其他模块而言,在命令行和PyCharm之间切换时,我仍然遇到问题。我公司为此提出了一个简单的解决方案,可确保在离开PyCharm及其在项目中维护Python路径的逻辑时,我们所有的Python脚本仍可运行。我之前在S.O上已经解释了该机制。如果有人有兴趣,我将很高兴。

答案 2 :(得分:0)

win10toast安装在以下目录中:YOUR_PYCHARM_WORKSPACE\PycharmProjects\YOUR_PROJECT_NAME\venv\Lib\site-packages 但是,当您使用 cmd 运行程序时,pycharm解释器将使用在其中安装python的site-packages目录。例如:C:\Python27\Lib\site-packages 因此,您可以使用 pip win10toast库安装到此Windows目录。