首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python setup.py安装不能使用最新的setuptools:'<*>.egg-info‘中没有脚本

python setup.py安装不能使用最新的setuptools:'<*>.egg-info‘中没有脚本
EN

Stack Overflow用户
提问于 2019-04-18 01:33:04
回答 2查看 876关注 0票数 2

使用setuptools==27.2.0,我们的包picca (https://github.com/igmhub/picca)的travis测试运行良好。使用最新版本的setuptools==41.0.0:https://github.com/igmhub/picca/issues/591就不再是这样了。

这个问题似乎与setuptools试图读取脚本的位置有关。我得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/travis/virtualenv/python3.6.3/bin/picca_deltas.py", line 4, in <module>
    __import__('pkg_resources').run_script('picca==4.0', 'picca_deltas.py')
  File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 666, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1437, in run_script
    .format(**locals()),
pkg_resources.ResolutionError: Script 'scripts/picca_deltas.py' not found in metadata at '/home/travis/build/igmhub/picca/py/picca.egg-info'

当查看路径/home/travis/build/igmhub/picca/py/picca.egg-info/时,确实没有scripts文件夹。我们的python设置如下所示,有没有什么需要修改的地方,以便安装工具知道在哪里可以找到脚本?

代码语言:javascript
复制
#!/usr/bin/env python

import glob

from setuptools import setup

scripts = glob.glob('bin/*')

description = "Package for Igm Cosmological-Correlations Analyses"

version="4.0"
setup(name="picca",
    version=version,
    description=description,
    url="https://github.com/igmhub/picca",
    author="<***>",
    author_email="<***>",
    packages=['picca','picca.fitter2'],
    package_dir = {'': 'py'},
    package_data = {'picca': ['fitter2/models/*/*.fits']},
    install_requires=['numpy','scipy','iminuit','healpy','fitsio',
        'llvmlite','numba','h5py','future','setuptools'],
    test_suite='picca.test.test_cor',
    scripts = scripts
)

命令/home/travis/virtualenv/python3.6.3/bin/picca_deltas.py在我的计算机上如下所示:

代码语言:javascript
复制
#!<where is python>/python/3.6.3/bin/python
# EASY-INSTALL-SCRIPT: 'picca==4.0','picca_deltas.py'
__requires__ = 'picca==4.0'
__import__('pkg_resources').run_script('picca==4.0', 'picca_deltas.py')

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2019-06-25 15:40:51

这是一个大胆的尝试,但我也遇到了同样的问题。

看看/home/travis/build/igmhub/picca/py/picca.egg-info看起来像您的build文件夹。它不应该查看build文件夹中的egg-info,而是您安装的那个文件夹。

只需更改目录,您就会很好:

代码语言:javascript
复制
cd .. # or cd anywhere outside your build folder
picca_deltas.py

应该工作得很好。

票数 0
EN

Stack Overflow用户

发布于 2020-04-14 01:20:05

我找到了一个修复,我现在使用pytest而不是python setup.py test来运行测试。https://github.com/igmhub/picca/pull/698/files。线索在下面的消息中;

代码语言:javascript
复制
WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55733130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档