为什么python模块在shell中工作,而在脚本中不工作?
我想做两个节目。我希望其中一个打印我居住城市的当前天气,我希望另一个从在线帐户获取数据并返回。对于这些脚本,我导入了yweather模块和requests模块。当我在shell中导入它们时,没有问题,但是当我运行脚本时,它会显示“ImportError:没有名为yweather的模块”。我做错了什么 外壳:为什么python模块在shell中工作,而在脚本中不工作?,python,python-2.7,python-module,Python,Python 2.7,Python Module,我想做两个节目。我希望其中一个打印我居住城市的当前天气,我希望另一个从在线帐户获取数据并返回。对于这些脚本,我导入了yweather模块和requests模块。当我在shell中导入它们时,没有问题,但是当我运行脚本时,它会显示“ImportError:没有名为yweather的模块”。我做错了什么 外壳: >>> import requests >>> 脚本: Traceback (most recent call last): File "/Use
>>> import requests
>>>
脚本:
Traceback (most recent call last):
File "/Users/tim/Desktop/login.py", line 1, in <module>
import requests
ImportError: No module named requests
回溯(最近一次呼叫最后一次):
文件“/Users/tim/Desktop/login.py”,第1行,在
导入请求
ImportError:没有名为请求的模块
yweather模块也会发生这种情况
谢谢您确定它是同一版本的Python吗?尝试在shell和脚本中运行以下命令,比较结果
import sys
sys.version
如果它们不相同,则安装了两个版本。可能您在脚本中使用的是虚拟环境,而模块没有安装在那里。如果您在Windows上,则可能安装了两次Python。您是否使用Anaconda安装Python并独立安装Python 当您在命令提示符中键入Python时,是否会得到与解释器中相同的Python版本 如果是,则进入系统面板,删除在命令提示符下运行的Python版本的程序 否则,您可以在命令提示符下检查您正在使用的pythonpath:
echo %PATH%
如果在Python解释器中有不同的修复方法:
import sys
sys.path.append('your certain directory')
或者,也可以在命令提示下使用以下命令设置新路径:
setx PATH "%PYTHONPATH%;C:\python27"
希望这能有所帮助我和你有同样的问题,但是关于“sklearn”软件包。 安装了
scikit-learn
和sklearn
后,我在一个.py文件中运行import-sklearn
,它返回“ModuleNotFoundError:没有名为“sklearn.emble”的模块;“sklearn”不是包”
结果我犯了一个有趣的错误。我将文件命名为“sklearn.py”。因此,当我导入
sklearn
时,它可能只是尝试导入自己。我不应该将该文件命名为“sklearn.py”。我刚刚遇到了与您类似的情况。
正在导入的模块是opensbli。
以下是安装指南:
我犯的错误是,我首先通过sudo
命令将其克隆到/opt/
,然后移动到用户拥有的目录。问题是,由于我首先使用sudo
克隆它,opensbli目录的所有者是root
,而不是我的用户,这似乎是我无法在脚本中导入它的原因,即使使用sudo
命令也是如此
解决办法很简单。只需删除克隆并在不使用
sudo
的情况下再次克隆它,您确定在这两种情况下使用相同的解释器吗?您确定在运行脚本和提示时使用相同的Python版本吗?显示脚本的第一行。@sphere第一行正是我们在errorOK中看到的导入请求
,那么脚本本身就没有像#那样的shebang了/bin/python
。然后向我们展示如何在shell中运行脚本。它们都返回相同的结果。但在尝试了几件事之后,我发现我可以在使用终端时毫无问题地运行脚本。