使用pip安装时,应输入jupyter_server还是jupyter-server?
关于pip安装时下划线与连字符包名等效的问题
你观察到的情况完全属实——执行pip install jupyter_server和pip install jupyter-server确实会安装同一个包,jupyter_client和jupyter-client也是如此。
原因其实很简单:
- PyPI(Python官方包索引)的命名规则里,下划线(
_)和连字符(-)被视为完全等价的字符。 - pip在处理安装请求时,会自动对包名里的这两种符号做转换,不管你输入的是下划线还是连字符,最终都会匹配到PyPI上的同一个包。
- 这种设计是为了兼容开发者不同的命名习惯,避免因为符号使用差异导致安装失败,或者出现重复上传同名包的混乱情况。
另外你可以验证一下:用pip list查看已安装的包时,会看到这些包的正式名称是带连字符的(比如jupyter-server、jupyter-client),这是因为包的配置文件(setup.py或pyproject.toml)里定义的官方名称用了连字符,但pip允许你用下划线作为输入替代。
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

