尽管从 github 安装了 python 包,但未找到错误模块

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

我正在安装 github 中提供的软件包examplepackage

$pip3 install examplepackage  
Defaulting to user installation because normal site-packages is not writeable
Collecting examplepackage
  Using cached ExamplePackage-0.1.3-py3-none-any.whl
Installing collected packages: examplepackage
Successfully installed examplepackage-0.1.3

$pip3 list | grep -i example  
ExamplePackage                0.1.3

我正在尝试运行以下代码:

from ExamplePackage.example_module import example_function

example_function()

并期望从 example_module 中的 example_function() 打印以下内容:

世界你好!我打赌你没想到这一点。

但我遇到以下错误:

$python3 test.py              
Traceback (most recent call last):
  File "/Users/saurav/face_detection/test.py", line 1, in <module>
    from ExamplePackage.example_module import example_function
ModuleNotFoundError: No module named 'ExamplePackage.example_module'

请帮忙。

python pip module package pyinstaller
1个回答
0
投票

这很有趣。我使用

pip install examplepackage
安装了该软件包,效果很好。但是,包存储库中提供的导入语句似乎不起作用。

因此我决定检查该软件包,发现实际安装的软件包是

ExamplePackage
而不是
examplepackage
。此外,没有像
example_module
example_function()
这样的东西,这意味着他们的 GitHub 上提供的以下代码会抛出错误:

import examplepackage
examplepackage.example_module.example_function()

查看

ExamplePackage
的内容(即实际安装的包),我们有SubPackage1和SubPackage2。
SubPackage1
包含一个
module1.py
文件,我们可以从中导入函数
fun1
。 SubPackage2 包含一个名为
GrandPackage
的文件夹和一个带有函数
module2.py
fun2

此包中不存在 examplepackage、example_module 或 example_function() 。你能做的是:

from ExamplePackage.SubPackage1.module1 import fun1

这会抛出一个

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
所以让我们看看
module1
的内容:

#!/usr/bin/python
# Filename: mymodule1.py

def fun1():
    print "Module1"

你可以看到

fun1
中的打印语句没有括号(可能是用Python的古老版本编写的)。要解决此问题,请按照错误消息
print("Module1")
中的建议在打印语句中添加括号。再次运行正确的导入语句,唷,它现在可以工作了。对您想要导入的任何其他函数重复此操作,因为它们不是用 Python3 编写的。

© www.soinside.com 2019 - 2024. All rights reserved.