在共享主机上安装MySQL-python

3 投票
3 回答
1812 浏览
提问于 2025-04-18 14:17

我在使用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 个回答

0

你没有权限使用 gcc 来编译东西。你需要在其他地方安装 MySQL-python,然后再把文件移动回你的服务器上。

可以查看 py_compile 来了解如何编译 Python 脚本。

0

如果他们说的是预编译,我想他们是指制作一个可执行文件。如果你的HostGator账户是用Windows系统的,那么你可以使用py2exe来创建一个可执行文件。py2exe的好处是,你可以在其他电脑上运行你的脚本,而不需要安装Python。

首先,你需要创建一个setup.py文件,这个文件会告诉程序你要打包哪个脚本以及它需要的所有依赖项。然后运行命令python setup.py py2exe,这样就会生成两个文件夹。你只需要dist文件夹,里面有你需要的可执行文件。

网上有很多很好的教程教你怎么做,祝你好运!

1

这个问题其实有个很简单的解决办法。如果共享主机上的根用户已经安装了 MySQLdb 这个 Python 模块,那么你可以通过使用 --system-site-package 这个选项来创建一个用户专属的虚拟环境。这样做会在你的本地虚拟环境中包含根用户安装的所有模块。

你可以使用以下命令来创建虚拟环境:virtualenv --system-site-package

你可以查看这个链接了解更多信息: 让虚拟环境继承全局安装的特定包

撰写回答