我觉得问这个问题有点傻,因为有很多类似的问题,但我诚实地到处搜索,找不到解决这个问题的方法。下面是:
我有一个Python包(关于TestPyPi,here是源代码,请注意,它使用并且需要python3.8),具有以下结构:
paillier/
setup.py
test/
paillier/
__init__.py
keygen.py
util/
__init__.py
math_shortcuts.py
我的用例是:在keygen.py
中,我想使用util/math_shortcuts.py
。
因此,在keygen.py
中,我有以下导入:
from paillier.util.math_shortcuts import generate_coprime, lcm, get_mu
。
然而,当我尝试使用我的包时(通过执行from paillier.keygen import generate_keys
),我遇到了错误ModuleNotFoundError: No module named 'paillier.util'
当我从TestPyPi
使用pip
安装它时,这个moduleNotFound错误总是存在的,但是当我在本地构建包时,它不会发生:当我在paillier/
目录(其中setup.py
中运行pip install -e .
时,即使我的工作目录在其他地方,我也可以运行^{
我试过做from .util.math_shortcuts ...
,或from util.math_shortcuts ...
,或from paillier.paillier.util.math_shortcuts ...
,但都没有用
简而言之,在执行pip install --index-url <TestPyPi> rens-paillier
时,我的文件似乎找不到子模块。
但是,在外部paillier/
目录中执行pip install -e .
时,它似乎起作用
我遇到了同样的问题。(my-e安装成功,普通安装没有)我的解决方案是,在setup.py中实际命名子包
虽然这是可行的,但我不知道为什么:D
相关问题 更多 >
编程相关推荐