簡體   English   中英

從命令行運行 python 腳本有很多麻煩

[英]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.

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