簡體   English   中英

在 python shell / 交互式提示中找到模塊,但在文件中導入時獲取 ModuleNotFound

[英]Module found on python shell / interactive prompt, but getting ModuleNotFound on import in file

我正在嘗試使用python-twitterhttps://python-twitter.readthedocs.io/en/latest/index.html ),但我運氣不佳。 使用import twitter調用python-twitter模塊,不幸的是,當我嘗試從命令行通過我的腳本執行此操作時,它不起作用。

令人難以置信的是,從 python shell 執行時沒有類似的錯誤。

一切都正確安裝,看起來:

(venv) user@computer:~/Documents/projectdir$ pip3 install python-twitter
Requirement already satisfied: python-twitter in /home/user/.local/lib/python3.8/site-packages (3.5)
Requirement already satisfied: requests-oauthlib in /home/user/.local/lib/python3.8/site-packages (from python-twitter) (1.3.0)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from python-twitter) (2.22.0)
Requirement already satisfied: future in /usr/lib/python3/dist-packages (from python-twitter) (0.18.2)
Requirement already satisfied: oauthlib>=3.0.0 in /usr/lib/python3/dist-packages (from requests-oauthlib->python-twitter) (3.1.0)

(venv) user@computer:~/Documents/projectdir$ pip3 install twitter
Requirement already satisfied: twitter in /home/user/.local/lib/python3.8/site-packages (1.18.0)


(venv) user@computer:~/Documents/projectdir$ pip3 freeze > requirements.txt

(venv) user@computer:~/Documents/projectdir$ echo "$(<requirements.txt)"
...
python-twitter==3.5
...
twitter==1.18.0
...

然而我的腳本拋出了一個錯誤:

(venv) user@computer:~/Documents/projectdir$ sudo python3 authentication_test.py
Traceback (most recent call last):
  File "authentication_test.py", line 1, in <module>
    import twitter
ModuleNotFoundError: No module named 'twitter'

盡管 python shell 發現了twitter模塊:

(venv) user@computer:~/Documents/projectdir$ python3
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import twitter
>>> twitter.Api()
<twitter.api.Api object at 0x7f11b0056a60>
>>> 

這里發生了什么? 我認為twitterpython-twitter之間可能存在問題,但我確實pip3 uninstall twitter並且問題仍然存在。

我應該注意,雖然我用注釋將它們分開,但上面的代碼片段是連續完成的。

想法?

正如 Aaron 所說(謝謝),答案是sudo讓我脫離了virtualenv上下文,因此這些包不可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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