在共享主机上安装MySQL-python
我在使用Hostgator作为测试环境时,遇到了安装MySQL-python的问题,执行了以下命令:
pip install MySQL-python
然后出现了这个错误:
unable to execute gcc: Permission denied
enter code here`error: command 'gcc' failed with exit status 1
我向技术支持询问这个问题,他们告诉我:
这个脚本需要一个编译器,而共享账户是无法访问编译器的。你需要上传任何你想使用的Python脚本,作为预编译的脚本。你应该可以在其他地方编译它,然后上传到你的账户中使用。
这是我第一次使用Python,我完全不知道该怎么做。
谢谢
======
更新
根据André的建议,我在我的Linux上创建了两个虚拟环境(使用virtualenv),一个安装了MySQL-python,另一个没有。
检查文件结构时,发现缺少的文件有:
.
├── MySQLdb
│ ├── connections.py
│ ├── connections.pyc
│ ├── constants
│ │ ├── CLIENT.py
│ │ ├── CLIENT.pyc
│ │ ├── CR.py
│ │ ├── CR.pyc
│ │ ├── ER.py
│ │ ├── ER.pyc
│ │ ├── FIELD_TYPE.py
│ │ ├── FIELD_TYPE.pyc
│ │ ├── FLAG.py
│ │ ├── FLAG.pyc
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── REFRESH.py
│ │ └── REFRESH.pyc
│ ├── converters.py
│ ├── converters.pyc
│ ├── cursors.py
│ ├── cursors.pyc
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── release.py
│ ├── release.pyc
│ ├── times.py
│ └── times.pyc
├── _mysql_exceptions.py
├── _mysql_exceptions.pyc
├── MySQL_python-1.2.5-py2.7.egg-info
│ ├── dependency_links.txt
│ ├── installed-files.txt
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ └── top_level.txt
└── _mysql.so
所以我把这些文件复制到了:
/venv/lib/python2.7/site-packages/
其中/venv/是我在主机上创建的虚拟环境的文件夹。
再次感谢
3 个回答
你没有权限使用 gcc
来编译东西。你需要在其他地方安装 MySQL-python
,然后再把文件移动回你的服务器上。
可以查看 py_compile 来了解如何编译 Python 脚本。
如果他们说的是预编译,我想他们是指制作一个可执行文件。如果你的HostGator账户是用Windows系统的,那么你可以使用py2exe来创建一个可执行文件。py2exe的好处是,你可以在其他电脑上运行你的脚本,而不需要安装Python。
首先,你需要创建一个setup.py文件,这个文件会告诉程序你要打包哪个脚本以及它需要的所有依赖项。然后运行命令python setup.py py2exe,这样就会生成两个文件夹。你只需要dist文件夹,里面有你需要的可执行文件。
网上有很多很好的教程教你怎么做,祝你好运!
这个问题其实有个很简单的解决办法。如果共享主机上的根用户已经安装了 MySQLdb
这个 Python 模块,那么你可以通过使用 --system-site-package
这个选项来创建一个用户专属的虚拟环境。这样做会在你的本地虚拟环境中包含根用户安装的所有模块。
你可以使用以下命令来创建虚拟环境:virtualenv --system-site-package
你可以查看这个链接了解更多信息: 让虚拟环境继承全局安装的特定包