簡體   English   中英

為什么python模塊在shell中工作而不在腳本中工作?

[英]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-learnsklearn ,我在 .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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM