liangbeishu 2019-09-30 14:26 采纳率: 0%
浏览 1026

我给自己的Python程序写了一个setup.py文件,可以安装,但是无法import,执行可执行文件也报错怎么办?

我自己写了一个用于科学计算的Python程序,用于比较晶体结构相似性,对大批量的晶体结构自动分类,方法原理我在这篇文章里描述了[J. Phys. Condens. Matter 2017, 29, 165901]。现在我想做成一个Python egg,写了一个setup.py文件如下:

from setuptools import setup, find_packages


setup(
    name='spap',
    version='0.3.0',
    packages=find_packages(),
    license='GPL',
    platforms="Independant",
    # install_requires=['numpy>=1.8.0', 'spglib>=1.10.0', 'ase>=3.13.0'],
    install_requires=['numpy', 'spglib', 'ase'],
    entry_points={
        'console_scripts': [
            'spap = src.spap:start_cli',
        ]
    }
)

我用sudo python3 setup.py install能安装,安装包的目录如下所示:

./
├── build
│   ├── bdist.linux-x86_64
│   └── lib
│       └── src
│           ├── ccf.py
│           ├── __init__.py
│           └── spap.py
├── dist
│   └── spap-0.3.0-py3.6.egg
├── example
│   └── run.py
├── setup.py
├── spap.egg-info
│   ├── dependency_links.txt
│   ├── entry_points.txt
│   ├── PKG-INFO
│   ├── requires.txt
│   ├── SOURCES.txt
│   └── top_level.txt
└── src
    ├── ccf.py
    ├── __init__.py
    └── spap.py

8 directories, 15 files

可以安装到系统上,pip3 list能显示出来,我执行spap -h命令就出错:

Traceback (most recent call last):
  File "/usr/local/bin/spap", line 11, in <module>
    load_entry_point('spap==0.3.0', 'console_scripts', 'spap')()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 480, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2693, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in load
    return self.resolve()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/lib/python3.6/dist-packages/spap-0.3.0-py3.6.egg/src/spap.py", line 70, in <module>
ModuleNotFoundError: No module named 'ccf'

而且在python3里import spap输出如下:

>>> import spap
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'spap'

请问这个怎么办?

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能