随pip一起安装的软件包会根据python配置更改吗?

mjsr

我对如何安装/配置Python软件包依赖项有一个概念上的疑问,这与编译配置有关。

情况1

pyscreenshot, image, pillow使用ucs2在用户库空间(--user)中配置的python 2.7使用pip安装的软件包执行一些api以获得桌面截图,一切运行平稳。

情况二

执行另一个配置了的python 2.7 ucs4,它将查找那些已安装在用户空间中的软件包。执行相同的api获取桌面截图,它崩溃了。ucs4配置与软件包的工作方式不兼容。

那为什么会这样呢?能否根据Python的配置安装相同软件包的不同版本?

注意:ucs2 / ucs4说明https://docs.python.org/2/c-api/unicode.html

生长激素

那为什么会这样呢?

发生这种情况的原因是,当两个C(二进制)代码都加载到内存中时,每个代码都以不同的方式处理字符串。python文档中明确指出:“ ... UCS2和UCS4 Python构建不与二进制兼容。编写扩展或接口时请记住这一点。”

文档还说:“ Python的默认构建对Py_UNICODE使用16位类型,并将Unicode值内部存储为UCS2。” 因此,您要做的是:安装与默认解释器兼容的软件包,并使用不兼容的Python解释器运行它。

能否根据Python的配置安装相同软件包的不同版本?

我不确定pip是否能够处理UCS2和UCS4软件包变体。如果使用UCS4解释器中的pip安装相同的软件包,会发生什么情况?如果在使用UCS4版本的pip时安装了该软件包的UCS2版本,则建议下载该软件包的源发行版,并使用UCS4自己对其进行编译。

我知道pip可以区分os(windows / linux)和ABI,但我认为它不能处理UCS差异。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PIP和python安装软件包

与Anaconda一起安装了软件包,无法在Python中导入

识别与pip一起安装的python软件包的依赖关系

随hombrew一起安装,可以找到导致软件包故障的$ GOROOT

如何卸载随堆栈一起安装的Haskell软件包?

如何使用pip卸载可编辑软件包(与-e一起安装)

python隐式名称空间软件包未与setuptools一起安装

如何在PyPI中配置软件包以仅与pip3一起安装

pyenv卸载会删除通过pip安装的所有软件包吗?

VSTS软件包提要:将客户端配置为与vsts提要一起使用后,无法安装公共npm软件包

使用pip安装软件包会返回错误

Zappa Update可以与Zappa软件包的输出软件包一起使用吗?

为什么python Windows安装程序会随旧版本的pip一起分发?

如何使intellisense与.egg-link软件包(以开发模式安装)一起使用?

如何设置路径,使其与本地作为软件包安装的Python代码一起使用

如何重新安装随Homebrew一起安装的所有软件包?

在尝试与Muon一起安装时被要求删除软件包?

完全卸载与软件包一起安装的相关软件包

使用pip安装软件包会产生SSL错误

CentOS Everything ISO中包含的所有软件包是否都随基本系统一起安装?

与DNF一起安装的软件包将存储在哪里?

在Ubuntu 16.04中,随APT一起安装存储的软件包存储在哪里?

佳能MG-5550打印机未在Xubuntu 16.04上随佳能软件包一起安装

删除与之一起安装的软件包和依赖项

使用pip安装python软件包

使用Aptitude安装完整PCL的软件包是什么?先决条件会一起出现吗?

Composer软件包相关性未随主软件包一起加载

如何包括与Bower一起安装的软件包?

Python 找不到与 Conda 一起安装的软件包