在没有 gcc 或 root 访问权限的共享主机上安装需要 gcc 的 python 模块

2024-01-13

我正在使用 Hostgator 共享作为生产环境,并且在使用以下命令后安装一些 python 模块时遇到问题:

pip 安装 MySQL-python

点安装枕头

结果是:

无法执行 gcc:权限被拒绝 错误:命令“gcc”失败,退出状态为 1

服务器限制

  • 没有根访问权限
  • sudo 不起作用(sudo:有效 uid 不为 0,sudo 是否安装了 setuid root?)
  • no gcc

问题

  1. 枕头有替代包装吗?我希望它使用 django ImageField。 (就像 pymysql 是 mysql-python 的同等功能的替代品一样)

  2. 我在 root 中安装了 mysql-python 和 pil 等模块,即 pip freeze 没有任何 virtualenv 列出了这些模块。但我无法在此根环境中安装其他所需的模块,并且在我的 virtualenv 中我无法安装 mysql-python 和 pil。可以做点什么吗?我们可以在 virtualenv 中以某种方式导入/使用安装在 root 中的包吗?

  3. hostgator 共享仅适用于 PHP,不适用于 python/django webapps。我们的流量有限,因此我们使用共享的 Hostgator。我们应该避免使用 Hostgator 或共享主机吗?它们对于 python/django 来说不够好吗(我在托管静态/PHP 站点时没有遇到任何问题)。它们是否存在太多问题和限制或性能问题(FCGI)?如果是,有哪些替代方案?


你可以尝试构建wheels https://pip.pypa.io/en/latest/user_guide.html#installing-from-wheels在可用 gcc 的类似主机上,将它们复制到您的服务器并安装。但我不知道主机应该有多少相似度。

  1. 在与 gcc 的“类似”主机上:

    mkdir /tmp/wheels mkdir /tmp/pip-cache pip wheel --download-cache /tmp/pip-cache -w /tmp/wheels -r requirements.pip

  2. 将轮子复制到您的主机(我假设您复制到/tmp/wheels)

  3. 从wheels安装,忽略索引并使用wheels目录:

    pip install --download-cache /tmp/pip-cache --find-links=/tmp/wheels --no-index -r requirements-dev.pip

附:也许您还应该将下载缓存复制到您的主机。我不记得是否需要这样做。如果不需要,那么您可以跳过选项--download-cache /tmp/pip-cache

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有 gcc 或 root 访问权限的共享主机上安装需要 gcc 的 python 模块 的相关文章

随机推荐