我正在尝试制作两个节目。我想要一个人打印我所在城市的当前天气,我希望另一个人从在线帐户中获取数据并将其返回。对于那些脚本,我导入yweather模块和请求模块。当我在shell中导入它们时没有问题但是当我运行脚本时它会说" ImportError:没有名为yweather"的模块。我做错了什么?
外壳:
>>> import requests
>>>
脚本:
Traceback (most recent call last):
File "/Users/tim/Desktop/login.py", line 1, in <module>
import requests
ImportError: No module named requests
这也适用于yweather模块
谢谢
答案 0 :(得分:1)
我和您有同样的问题,但包装为“ sklearn”。
安装scikit-learn
和sklearn
之后,我在.py文件中运行import sklearn
,它返回“ ModuleNotFoundError:没有名为'sklearn.ensemble'的模块;'sklearn'不是软件包”。
事实证明,我犯了一个有趣的错误。我将文件命名为“ sklearn.py”。因此,当我导入sklearn
时,它可能只是尝试自行导入。我不应该将该文件命名为“ sklearn.py”。
答案 1 :(得分:0)
您确定它是相同版本的Python吗?尝试在shell和脚本中运行以下内容,比较结果。
import sys
sys.version
如果它们不相同,则安装了两个版本。
答案 2 :(得分:0)
也许您在脚本中使用虚拟环境,并且没有安装模块。
答案 3 :(得分:0)
如果你在Windows上,你可能已经安装了两次Python。您是否使用Anaconda安装Python并独立安装Python?
当您在命令提示符下键入Python时,您是否获得与解释器中的Python版本相同的Python版本?
如果是,则进入系统面板并删除在命令提示符下运行的Python版本的程序。
否则,您可以在命令提示符中查看您正在使用的pythonpath:
echo %PATH%
如果在Python解释器中修复它的方法不同:
import sys
sys.path.append('your certain directory')
或者您也可以使用以下命令在命令提示符中设置新路径:
setx PATH "%PYTHONPATH%;C:\python27"
希望这有帮助
答案 4 :(得分:0)
我刚刚遇到了和你类似的情况。 导入的模块是 opensbli。 这是安装指南:https://github.com/opensbli/opensbli/blob/version2.0/docs/installation_guide.pdf
我犯的错误是我首先通过/opt/
命令将其克隆到sudo
,然后移动到我的用户拥有的目录。问题是,因为我一开始用 sudo
克隆它,opensbli 目录的所有者是 root
而不是我的用户,这似乎是我什至无法在脚本中导入它的原因使用 sudo
命令。
修复很简单。只需删除克隆并在没有 sudo
的情况下再次克隆它。