在 setup.py 中尝试导入第三方模块时出现 ModuleNotFoundError
Getting ModuleNotFoundError when trying to import third party modules in setup.py
我目前正在编写一个模块,我想为它使用 mypyc
。我正在按照文档在 setup.py
中使用它,但每次我尝试将它导入那里时我都会得到一个 ModuleNotFoundError
和 运行 pip install .
.
当 运行ning python setup.py install
一切正常时。
当我也尝试导入其他模块时出现错误。当然都安装好了。
我不知道问题出在哪里。
这是我的 setup.py
文件:
from mypyc.build import mypycify
from setuptools import find_packages, setup
setup(
name="my_lib_name",
author="my_name",
url="my_url",
license="MIT",
description="Some description",
packages=find_packages(),
version="0.0.1",
install_requires=["levenshtein", "unidecode", "mypy"],
ext_modules=mypycify(["mylib/"]), # type: ignore
python_requires=">=3.9",
setup_requires=["pytest-runner"],
tests_require=["pytest"],
test_suite="tests",
)
我在 运行ning pip install .
:
时得到的错误
File "setup.py", line 1, in <module>
from mypyc.build import mypycify
ModuleNotFoundError: No module named 'mypyc'
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\my_path\venv\scripts\python.exe' 'c:\users\my_path\venv\lib\site-packages\pip\_vendor\pep517\_in_process.py' get_requires_for_build_wheel 'C:\Users\my_name\AppData\Local\Temp\tmpa7qmg4q1' Check the logs for full command output.
同样,当 运行ning python setup.py install
我没有收到任何错误。
当然,当我删除 mypyc 导入时,一切也都按预期工作。
不确定我在这里做错了什么,希望有人能帮助我。
为了补全,我使用的是Python版本3.9.2和pip版本20.2.3,但是使用最新的pip版本22.0.4也出现这个错误。
经过 很多 的反复试验,我找到了罪魁祸首。我的项目中有一个 pyproject.toml
文件,它似乎出于某种原因导致了这个问题??我不确定为什么,它出于某种原因干扰了它。
这是 pyproject.toml
文件的内容:
[tool.black]
line_length=88
[tool.isort]
profile="black"
我在顶部添加了这些行:
[build-system]
requires = ["setuptools", "setuptools-scm", "mypy"]
build-backend = "setuptools.build_meta"
“mypy”是我要在 setup.py 文件中导入的包。
完全删除文件也可以。
我希望这可能会对某人有所帮助。
我目前正在编写一个模块,我想为它使用 mypyc
。我正在按照文档在 setup.py
中使用它,但每次我尝试将它导入那里时我都会得到一个 ModuleNotFoundError
和 运行 pip install .
.
当 运行ning python setup.py install
一切正常时。
当我也尝试导入其他模块时出现错误。当然都安装好了。
我不知道问题出在哪里。
这是我的 setup.py
文件:
from mypyc.build import mypycify
from setuptools import find_packages, setup
setup(
name="my_lib_name",
author="my_name",
url="my_url",
license="MIT",
description="Some description",
packages=find_packages(),
version="0.0.1",
install_requires=["levenshtein", "unidecode", "mypy"],
ext_modules=mypycify(["mylib/"]), # type: ignore
python_requires=">=3.9",
setup_requires=["pytest-runner"],
tests_require=["pytest"],
test_suite="tests",
)
我在 运行ning pip install .
:
File "setup.py", line 1, in <module>
from mypyc.build import mypycify
ModuleNotFoundError: No module named 'mypyc'
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\my_path\venv\scripts\python.exe' 'c:\users\my_path\venv\lib\site-packages\pip\_vendor\pep517\_in_process.py' get_requires_for_build_wheel 'C:\Users\my_name\AppData\Local\Temp\tmpa7qmg4q1' Check the logs for full command output.
同样,当 运行ning python setup.py install
我没有收到任何错误。
当然,当我删除 mypyc 导入时,一切也都按预期工作。
不确定我在这里做错了什么,希望有人能帮助我。
为了补全,我使用的是Python版本3.9.2和pip版本20.2.3,但是使用最新的pip版本22.0.4也出现这个错误。
经过 很多 的反复试验,我找到了罪魁祸首。我的项目中有一个 pyproject.toml
文件,它似乎出于某种原因导致了这个问题??我不确定为什么,它出于某种原因干扰了它。
这是 pyproject.toml
文件的内容:
[tool.black]
line_length=88
[tool.isort]
profile="black"
我在顶部添加了这些行:
[build-system]
requires = ["setuptools", "setuptools-scm", "mypy"]
build-backend = "setuptools.build_meta"
“mypy”是我要在 setup.py 文件中导入的包。
完全删除文件也可以。
我希望这可能会对某人有所帮助。