如何解决如何为python模块构建dep包?
我想为 python 模块构建一个基于 debian 的 deb 包并得到一个 ModuleNotFoundError,如果我用终端调用它。我创建了一个最小的例子。
目录结构:
hello
- debian
- control
- rules
- hello
- main.py
- setup.py
rules
:
#!/usr/bin/make -f
export DH_VERBOSE=1
export PYBUILD_NAME=hello
%:
dh $@ --with python3 --buildsystem=pybuild
control
:
Source: hello
Section: python
Priority: optional
Build-Depends:
debhelper-compat (= 12),dh-python,python3-all,python3-setuptools,python3-click,python3-yaml
Standards-Version: 0.1
X-python3-Version: >= 3.6
Package: hello
Architecture: all
Section: utils
Depends: python3-hello,${python3:Depends},${misc:Depends}
Description: print hello
setup.py
:
from setuptools import setup
setup(
name="hello",version="0.1",author="Me",description="Print hello",install_requires=[],license="MIT",python_requires=">=3.6",package_dir={"": "hello"},package_data={"hello": ["*"]},extras_require={},entry_points={
"console_scripts": [
"hello=hello.main:main",]
},)
main.py
:
#!/usr/bin/env python
import click
@click.command()
@click.version_option()
def main():
print("Hello")
if __name__ == "__main__":
main()
然后我运行 sudo python3 setup.py --command-packages=stdeb.command bdist_deb
并使用 sudo dpkg -i python3-hello
安装 deb 包。
当我运行 hello
时,我收到此错误消息:
File "/usr/bin/hello",line 11,in <module>
load_entry_point('hello==0.1','console_scripts','hello')()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py",line 490,in load_entry_point
return get_distribution(dist).load_entry_point(group,name)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py",line 2854,in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py",line 2445,in load
return self.resolve()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py",line 2451,in resolve
module = __import__(self.module_name,fromlist=['__name__'],level=0)
ModuleNotFoundError: No module named 'hello'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。