[英]Lots of trouble running a python script from the command line
你如何回答的上下文:我是命令行環境的新手,除了基本的 git 命令。 我一直只使用像 PyCharm 或 NetBeans 這樣的 IDE 來運行學校項目的東西。 請相應地框定您的答案。
我有一個非常小的 python 腳本,可以拉下一個 URL:
import sys
sys.path.append(r'C:\Users\WNeill\PycharmProjects\bloomskyGrantGrove\venv\Lib\site-packages\bloomsky_api')
import bloomsky_api as bs
client = bs.BloomSkyAPIClient(api_key='pr-XXXXXXXXXX')
data = client.get_data()[0] # Dictionary formatted like JSON, if you want data besides the latest image
with open("image_URL.txt", 'w') as file:
print(data.get('outdoor').get('image_url'), file=file)
我做了sys.path.append()
是因為我讀到了一個不同的問題,它可以解決從命令行運行我的腳本時“找不到模塊”的問題。
嗯,它確實,有點......現在,它找到了我的進口,但顯然我的進口有進口......
$ py -m bloomtest.py Traceback (most recent call last): File "C:\\Program Files\\Python38\\lib\\runpy.py", line 183, in _run_module_as_main mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "C:\\Program Files\\Python38\\lib\\runpy.py", line 109, in _get_module_details __import__(pkg_name) File "C:\\Users\\WNeill\\PycharmProjects\\bloomskyGrantGrove\\bloomtest.py", line 4, in <module> import bloomsky_api as bs File "C:\\Users\\WNeill\\PycharmProjects\\bloomskyGrantGrove\\venv\\Lib\\site-packages\\bloomsky_api\\bloomsky_api.py", line 2, in <module> import requests ModuleNotFoundError: No module named 'requests'
那么當我的依賴項有依賴項時,我該怎么做才能使這項工作正常進行?
不要使用sys.path.append
。 想象一下,將您的代碼發送給其他人,他們的包將不在同一路徑中,他們將無法運行您的程序。 您可能不打算分發您的代碼,但這只是不好的做法。
相反,您應該使用pip
來安裝您的軟件包,因為我假設您一直在使用 PyCharm 軟件包管理器。 我認為它會自動安裝當前版本的 python(雖然不確定,我在 Linux 上)並且它是這樣使用的:
pip install BloomSky-API
它會自動獲取所有依賴項並將它們放在正確的位置。
我以前從未使用過py
命令(我錯過了嗎?),請嘗試使用python bloomtest.py
來運行它,只是為了確定。 您可能會收到一條錯誤消息,告訴您python
是一個無法識別的命令或文件,如果是這種情況,則意味着您的 PATH 設置不正確。 我發現解決此問題的最簡單方法是簡單地重新安裝 python,確保選中將 python 添加到您的 PATH 的復選框。
如果我不確定它是否解決了您遇到的問題,我通常會在評論中發布這樣的建議,但答案太長而無法放入評論。 希望這可以幫助!
我想發布我的問題的最終解決方案,由於DutChen18的回答,我偶然發現了這個問題。
他說我應該使用pip install
來安裝我所有的包,這是我已經在做的一件事。 我對命令行知之甚少,除了基本的 git 之類的。 再次嘗試這樣做給了我requirement already satisfied
錯誤。
但是,我在 PyCharm 中使用了一個嵌入式終端: C:\\Program Files\\Git\\bin\\bash.exe
,它在您下載 Git 時出現。 這在 PyCharm 中非常有效,因為它會自動在項目的工作目錄中啟動。 對我這個新的命令行用戶來說非常方便。
我決定與 PyCharm 分開打開 Git Bash 並再次運行pip install
。 我發現的第一件事是,它在沒有python -m pip install
情況下無法工作,這與 PyCharm 嵌入式終端不同。
一旦我想通了,我嘗試python -m pip install BloomSky-API
,但這一次它沒有告訴我這些庫已經安裝。 突然之間,我可以從命令行運行我的 python 腳本。
我對為什么會發生這種情況或為什么現在有效,我有零線索,而且我現在很想聽到更技術性的解釋,因為我已經有了工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.