![](/img/trans.png)
[英]modules work in python shell but not in jupyter notebooks
[英]Why do python modules work in shell but not in the script?
我正在嘗試制作兩個程序。 我想讓一個打印我居住城市的當前天氣,我想讓另一個從在線帳戶中獲取數據並將其返回。 對於這些腳本,我導入了 yweather 模塊和 requests 模塊。 當我在 shell 中導入它們時,沒有問題,但是當我運行腳本時,它顯示“導入錯誤:沒有名為 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 模塊
謝謝
我和你有同樣的問題,但是包“sklearn”。 安裝scikit-learn
和sklearn
,我在 .py 文件中運行import sklearn
並返回“ModuleNotFoundError: No module named 'sklearn.ensemble'; 'sklearn' is not a package”。
事實證明我犯了一個有趣的錯誤。 我將文件命名為“sklearn.py”。 所以當我導入sklearn
,它可能只是嘗試導入自己。 我不應該將該文件命名為“sklearn.py”。
你確定它是相同版本的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"
希望這有幫助
我剛遇到和你一樣的情況。 導入的模塊是 opensbli。 這是安裝指南: https : //github.com/opensbli/opensbli/blob/version2.0/docs/installation_guide.pdf
我犯的錯誤是我首先通過sudo
命令將其克隆到/opt/
,然后移動到我的用戶擁有的目錄。 問題是,由於我首先用sudo
克隆它,opensbli 目錄的所有者是root
而不是我的用戶,這似乎是即使使用sudo
命令我也無法在腳本中導入它的原因。
修復很簡單。 只需刪除克隆並在沒有sudo
情況下再次克隆它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.