导入 python 模块以使脚本能够从命令行运行
Posted
技术标签:
【中文标题】导入 python 模块以使脚本能够从命令行运行【英文标题】:Importing a python module to enable a script to be run from command line 【发布时间】:2018-04-01 09:32:48 【问题描述】:我是 python 新手,正在尝试从这个 github repo (https://github.com/mgp25/psn-api) 测试一个脚本。
根目录有一个example.py
,我正在尝试使用它来运行它
$ python example.py
这给出了这个错误:
Traceback (most recent call last):
File "example.py", line 1, in <module>
from src.Auth import Auth
ImportError: No module named src.Auth
我怎样才能让它运行?
根目录中有一个名为 src 的文件夹,但因为我是 python 新手,所以我不知道如何连接东西以便导入 src.Auth
模块(或者如果这甚至是正确的术语)
【问题讨论】:
目录中有 init.py 文件吗? 我没有。只是回购的内容。 该程序似乎导入了模块,因为我在身份验证方面得到了不同的用户。该模块甚至联系了 PSN 并得到了 403 响应。 【参考方案1】:在存储库根目录中,您可以:
touch src/__init__.py
这将创建一个空文件,但它是 Python 模块搜索系统所必需的。那么你应该能够毫无问题地运行它,除非对外部库有一些依赖。
【讨论】:
这确实创建了py
文件,但我得到了同样的错误
对不起,我的原始回复有误。您必须在根目录中运行它: touch src/__init__.py 重要的是要注意它不会是点和 py 扩展名之间的空格。刚刚在我的原始回复中进行了编辑。你能再试一次吗?【参考方案2】:
Python 3.3+ 很乐意将其解释为没有__init__.py
的包,fwiw,我相信这就是作者所写的。
还请注意,刚刚尝试运行它,您需要安装simplejson
和requests
。 (通常会有requirements.txt
或类似的说法。)
【讨论】:
它在运行pip3 install simplejson
、pip3 install requests
然后运行python3作为python3 example.py
的命令后工作。以上是关于导入 python 模块以使脚本能够从命令行运行的主要内容,如果未能解决你的问题,请参考以下文章