V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
1800x
V2EX  ›  Python

pip install 名称带下划线和破折号的包的问题

  •  
  •   1800x · 2019-04-08 15:49:00 +08:00 · 3804 次点击
    这是一个创建于 2082 天前的主题,其中的信息可能已经有所发展或是发生改变。
    被依赖的包名称为:guess_language-spirit

    我的操作系统为 debian 9,安装了 python3.5 3.6.6 3.7,pip 为最新版
    在我的 debian 系统上直接安装 guess_language-spirit,不管哪个 py 版本,一律是报:
    Collecting guess_language-spirit
    Could not find a version that satisfies the requirement guess_language-spirit (from versions: )
    No matching distribution found for guess_language-spirit

    我 docker 官方仓库 pull 了 python3.6.0 3.6.6 3.7,再在几个 docker 容器上去安装 guess_language-spirit,都是成功的
    第 1 条附言  ·  2019-04-09 10:12:04 +08:00
    谢谢大家
    已经解决

    造成该原因,因为 guess_language-spirit 依赖于 Python 内置模块 bz2,而自己编译的 Python 可能不包含该模块 。这种情况下,pip 在线安装会很坑爹地提示 not find ; pip 离线包安装才会友善地提示 No module named '_bz2'。

    编译 Python 时,make 会根据系统有无安装 bz2 依赖的 libbz2-dev 包来判断是否编译 ba2 模块,这个过程不会给用户任何提示。

    系统安装 libbz2-dev 包,然后重新编译安装 Python 即可解决。
    13 条回复    2019-04-09 10:34:46 +08:00
    frostming
        1
    frostming  
       2019-04-08 16:23:38 +08:00
    你是不是设了代理,检查下网络连接
    1800x
        2
    1800x  
    OP
       2019-04-08 20:11:10 +08:00
    @frostming 肯定跟网络无关,因为其它的都可以下
    yzc27
        3
    yzc27  
       2019-04-08 20:13:37 +08:00 via iPhone
    是不是 python 版本問題?
    huamiao
        4
    huamiao  
       2019-04-08 20:15:30 +08:00 via iPad
    检查过 pip 是哪个 python 版本下的么?记得默认是 py2 的,py3 要用 pip3
    baojiweicn2
        5
    baojiweicn2  
       2019-04-08 20:17:18 +08:00 via Android
    没有指定 version 嘛
    baojiweicn2
        6
    baojiweicn2  
       2019-04-08 20:17:28 +08:00 via Android
    这不是写着了吗
    lihnzx
        7
    lihnzx  
       2019-04-08 20:29:14 +08:00
    我试了试我的实体机 win7, 虚拟机 arch, 虚拟机 ubuntu, 都没有出现该问题
    不过...
    提示的是这个: Successfully uninstalled guess-language-spirit-0.5.3
    或者可以试试指定源: pip install guess-language-spirit -i http://mirrors.aliyun.com/pypi/simple/
    msg7086
        8
    msg7086  
       2019-04-08 20:34:33 +08:00
    你运行的是 pip3 install 吗
    ipwx
        9
    ipwx  
       2019-04-08 20:34:40 +08:00
    你试试 python -m pip install 而非 pip install ?
    dorothyREN
        10
    dorothyREN  
       2019-04-08 21:09:31 +08:00
    包名是 guess_language-spirit 而不是 guess-language-spirit ??
    1800x
        11
    1800x  
    OP
       2019-04-08 21:54:27 +08:00
    @dorothyREN guess_language-spirit 与 guess-language-spirit 一样的结果
    @ipwx 谢谢 试了,不管用
    @msg7086 @huamiao pip3.x 与 py 版本一一对应
    @lihnzx 指定源也不行

    诸位朋友指出的方法,我早就一一尝试过……
    Qzier
        12
    Qzier  
       2019-04-08 21:59:23 +08:00 via iPad   ❤️ 1
    pypi 其实是不区分短横线和下划线的。
    lihnzx
        13
    lihnzx  
       2019-04-09 10:34:46 +08:00
    我也隐约感觉应该是其他的问题, 不然怎么会提示找不到, 而且一开始我想问一下你是使用什么东西管理多版本的, 后来一想: 实际手动管理也没有太大的麻烦, 总结就是: 软件好装, 依赖难搞(边用边解决, 越用越顺手!)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4857 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:12 · PVG 09:12 · LAX 17:12 · JFK 20:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.