从命令行运行python脚本有很多麻烦

问题描述 投票:1回答:2

您如何回答的上下文:除了基本的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(),因为我读了一个different question,它可以解决从命令行运行脚本时出现的“找不到模块”的问题。

嗯,确实做到了……现在,它找到了我的进口货,但显然我的进口货有进口货...

$ 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'

那么当我的依赖项具有依赖项时,我该怎么做才能使这项工作有效?

python command-line-interface
2个回答
1
投票

请勿使用sys.path.append。想象一下,将您的代码发送给其他人,他们的软件包将不会位于同一路径,并且他们将无法运行您的程序。您可能不打算分发代码,但这只是一种不好的做法。

相反,您应该使用pip安装软件包,因为我假设您一直在使用PyCharm软件包管理器。我认为它会自动与当前版本的python一起安装(虽然不确定,但我在Linux上),其用法如下:

pip install BloomSky-API

它将自动获取所有依赖项并将它们放在正确的位置。

我以前从未使用过py命令(我错过了吗?),请尝试使用python bloomtest.py运行它,以确保确定。您可能会得到一个错误消息,告诉您python是无法识别的命令或文件,如果是这种情况,则意味着您的PATH设置不正确。我发现解决此问题的最简单方法是简单地重新安装python,并确保选中显示将python添加到PATH的复选框。

如果不确定是否能解决您遇到的问题,我通常会在评论中发布这样的建议,但是答案太长而无法放入评论中。希望这会有所帮助!


0
投票

我想发布问题的最终解决方案,由于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脚本。

我有[[零个线索,说明为什么会发生这种情况或现在为什么会起作用,并且,我想知道事情已经解决了,我想听听一个更技术性的解释。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.