我在一段时间后发布了这个错误,但需要对此进行更多澄清。 我目前正在Windows 10机器上运行Visual Studio 2013构建Django Web应用程序(运行Python3.4)。在开始时我一直在处理MySQL连接问题,为此我做了一个mysqlclient pip-install。我创建了两个使用MySQL作为后端的项目,在安装mysqlclient之后,我能够通过我正在处理的当前项目连接到数据库。当我打开第二个项目并尝试连接到数据库时,我得到了相同的“没有模块称为MySqlDB”错误。 现在,两个项目之间的区别在于第一个项目不是在虚拟环境中创建的,而第二个项目是。
所以我推断,在Python虚拟环境中创建的项目无法连接到数据库。有人可以帮助我解决这个问题。我需要知道如何将mysqlclient模块加载到虚拟环境中,以便项目可以使用它。 感谢
答案 0 :(得分:2)
所以我推断,在Python虚拟环境中创建的项目无法连接到数据库
鉴于virtualenv是Web应用程序部署的事实标准,这将是非常令人惊讶的(暗示:我们使用virtualenvs维护和托管数十个Django项目)。
有人可以帮助我解决这个问题。我需要知道如何将mysqlclient模块加载到虚拟环境中以便项目可以使用它
与任何python包的方式相同:创建你的venv(如果没有完成),激活它并pip安装包:
bruno@bigb:~/Work/playground$ virtualenv venv
New python executable in venv/bin/python
Installing distribute.............................................................................................................................................................................................done.
Installing pip...............done.
bruno@bigb:~/Work/playground$ source venv/bin/activate
(venv)bruno@bigb:~/Work/playground$ pip install mysqlclient
Downloading/unpacking mysqlclient
Downloading mysqlclient-1.3.6.tar.gz (78Kb): 78Kb downloaded
Running setup.py egg_info for package mysqlclient
Installing collected packages: mysqlclient
Running setup.py install for mysqlclient
building '_mysql' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,3,6,'final',1) -D__version__=1.3.6 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g
In file included from /usr/include/python2.7/Python.h:8:0,
from _mysql.c:40:
/usr/include/python2.7/pyconfig.h:1161:0: attention : « _POSIX_C_SOURCE » redéfini [enabled by default]
/usr/include/features.h:164:0: note: ceci est la localisation d'une précédente définition
/usr/include/python2.7/pyconfig.h:1183:0: attention : « _XOPEN_SOURCE » redéfini [enabled by default]
/usr/include/features.h:166:0: note: ceci est la localisation d'une précédente définition
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so
Successfully installed mysqlclient
Cleaning up...
(venv)bruno@bigb:~/Work/playground$ python
Python 2.7.3 (default, Jun 22 2015, 19:33:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
pythonrc start
pythonrc done
>>> import MySQLdb
>>> >>> MySQLdb
<module 'MySQLdb' from '/home/bruno/Work/playground/venv/local/lib/python2.7/site-packages/MySQLdb/__init__.pyc'>
答案 1 :(得分:2)
您可以通过安装pymysql包
来修复它pip install pymysql
安装成功完成后,您必须将这些行添加到 init .py
import pymysql
pymysql.install_as_MySQLdb()
它对我有用
答案 2 :(得分:0)
这种方法有效!我可以通过以下命令在虚拟环境中安装mysqlclient: -
python -m pip install mysqlclient
非常感谢.. !!!!!