我使用Hostgator共享作为生产环境,使用后我在安装一些python模块时出现问题:
pip install MySQL-python
pip安装枕
会产生:
无法执行gcc:权限被拒绝 错误:命令'gcc'失败,退出状态为1
服务器限制
问题
是否有另一种枕头包装。我希望这个使用django ImageField。 (就像pymysql是mysql-python同样有能力的替代方案)
我在root中安装了mysql-python和pil之类的模块,即pip冻结而没有任何virtualenv列出这些模块。但我不能在这个根环境中安装我的其他所需模块,在我的virtualenv中我无法安装mysql-python和pil。可以做点什么吗?我们可以在virtualenv中以某种方式导入/使用root中安装的软件包吗?
是hostgator共享只适用于PHP而不适用于python / django webapps。我们的流量有限,所以我们使用hostgator共享。我们应该避免使用hostgator还是共享托管?对于python / django来说它们不够好(我在托管静态/ PHP站点方面没有问题)。他们有太多问题,限制或性能问题(FCGI)吗?如果有,有哪些替代方案?
答案 0 :(得分:3)
您可以尝试在gcc可用的类似主机上构建wheels,将它们复制到您的服务器并安装。但我不知道应该有多少类似的主机。
on"类似"主持人使用gcc:
mkdir /tmp/wheels
mkdir /tmp/pip-cache
pip wheel --download-cache /tmp/pip-cache -w /tmp/wheels -r requirements.pip
将轮子复制到您的托管(我假设您复制到/tmp/wheels
)
从轮子安装,忽略索引并使用轮子dir:
pip install --download-cache /tmp/pip-cache --find-links=/tmp/wheels --no-index -r requirements-dev.pip
P.S。也许您还应该将download-cache复制到您的主机。我不记得是否需要这个。如果不需要,则可以跳过选项--download-cache /tmp/pip-cache
答案 1 :(得分:1)
您可以尝试使用PIL而不是Pillow(试一试,但我猜您可能会遇到相同的编译问题)
设置virtualenv时,可以传递一个--system-site-packages标志。请参阅here
肯定有很多替代服务 - heroku,数字海洋,webfaction等。用于PythonAnywhere的快速插件(我在这里工作) - 我们是专门针对像Django这样的python框架的PAAS来的预先安装了PIL,mysql-python和许多其他python包。
答案 2 :(得分:0)
您需要root权限才能安装必要的软件包来运行您的python应用程序。
像Heroku这样的PAAS是另一种选择,但Heroku的免费软件包仅适用于开发您的应用程序,并且一旦您获得流量和用户,它就无法托管它。
我强烈建议您在DigitalOcean.com上获得VPS。每月5美元,您将获得root权限和更多权力。您还将控制您的完整堆栈。我现在使用Nginx + Gunicorn在DigitalOcean上主持大约10个Django项目。