没有模块在Python Virtual Enviroment中命名为MySqlDb

时间:2015-09-22 11:02:39

标签: python mysql django

我在一段时间后发布了这个错误,但需要对此进行更多澄清。 我目前正在Windows 10机器上运行Visual Studio 2013构建Django Web应用程序(运行Python3.4)。在开始时我一直在处理MySQL连接问题,为此我做了一个mysqlclient pip-install。我创建了两个使用MySQL作为后端的项目,在安装mysqlclient之后,我能够通过我正在处理的当前项目连接到数据库。当我打开第二个项目并尝试连接到数据库时,我得到了相同的“没有模块称为MySqlDB”错误。 现在,两个项目之间的区别在于第一个项目不是在虚拟环境中创建的,而第二个项目是。

所以我推断,在Python虚拟环境中创建的项目无法连接到数据库。有人可以帮助我解决这个问题。我需要知道如何将mysqlclient模块加载到虚拟环境中,以便项目可以使用它。 感谢

3 个答案:

答案 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

非常感谢.. !!!!!