python - 安装不带 gcc 的 psutil

标签 python gcc setup.py python-packaging

到目前为止我们安装了psutil通过我们的自定义 pypi 服务器。

现在我们有一个新的环境,我们不应该安装 gcc。

现在旧方法(pip 在安装过程中启动 gcc)不再有效。

上下文:

  • Linux 服务器
  • virtualenv 中的 python
  • 所有代码都需要从我们的数据中心部署(无需互联网访问)

我看到了这些替代方案:

每分钟转数

创建一个 RPM。因为我们已经使用 --system-site-packages 运行了我们的 virtualenv,所以这可行。这会强制服务器上的所有 virtualenvs 使用相同版本的 psutil。但这不是什么大问题。

轮子

我从来没有用过。

卡住

使用像cx_freeze 这样的工具。我以前从未这样做过。

其他解决方案?

我想还有其他可能更好的方法可以解决这个问题。

背景

psutil 只是本例中的一个示例。其他包含 c 扩展的 python 包也会出现同样的问题。假设这里还没有 RPM。

最佳答案

最惯用的方法是使用轮子。事实上,您的用例是创建 wheel 格式的原因之一。

构建 platform wheel很简单:

python setup.py bdist_wheel

您可能会收到错误“无效命令‘bdist_wheel’”。在这种情况下,您必须安装 wheel 包:

pip install wheel

构建轮子后,它位于例如dist/psutil-4.2.0-cp27-cp27mu-linux_x86_64.whl。您可以通过以下方式安装它:

pip install dist/psutil-4.2.0-cp27-cp27mu-linux_x86_64.whl

一般来说,安装和使用 wheel 只适用于二进制兼容的系统。由于不能保证跨不同的 Linux 发行版和版本,因此有 restrictions将轮子上传到中央 PyPI 时。运行您自己的 PyPI 服务器时,这些限制不适用。

您可以通过以下方式将轮子上传到您的自定义 PyPI:

python setup.py bdist_wheel upload --repository <url-to-custom-pypi>

然后通过以下方式从您的自定义 PyPI 安装它:

pip install --index-url <url-to-custom-pypi> psutil

关于python - 安装不带 gcc 的 psutil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406312/

相关文章:

python - 如何根据 pandas 数据框中的多列对元素进行分组,并将每组的元素数量保存在另一列中?

python - 尝试在没有 forms.py 的情况下使用文件上传 - 'InMemoryUploadedFile' 对象不可调用

python - 在 python 中使用 'autospec=True' 时模拟类属性

c++ - 如何模拟 C++17 之前的类模板参数推导?

python - 如何在不获取 pkg_resources.DistributionNotFound : once a project has been created 的情况下为 Pyramid 安装新包

installation - setup.py/setup.cfg 安装所有附加功能

python - 根据日期和时间分割数据

无法生成: implicit declaration of function ‘http_write_chunked’

gcc - 函数可以在 linux 内核中快速调用和内联吗?

python - setup.py 需要 MySQL-python