Installieren Sie python 3.6 mysqlclient für Django-Projekt auf CentOS

Habe ich erfolgreich installiert, ein Django-Projekt auf meinem CentOS 6.9. Ich habe installiert das Projekt in eine virtuelle Umgebung, die ich erstellt habe mit Python ist3.6 python3.6 -m venv env habe ich aktiviert den virtuellen env und ich bin jetzt versuchen, die app mit;

python manage.py runserver 0.0.0.0:8000

Wenn ich diesen Befehl ausführen bekomme ich folgende Fehlermeldung;

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f7f7c5d67b8>
Traceback (most recent call last):
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 26, in <module>
    import MySQLdb as Database
ModuleNotFoundError: No module named 'MySQLdb'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    autoreload.raise_last_exception()
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
    six.reraise(*_exception)
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models()
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/REMOVED/REMOVED/python3.6/softwareix/storefront/models.py", line 10, in <module>
    class Brand(models.Model):
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/models/base.py", line 124, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/models/base.py", line 331, in add_to_class
    value.contribute_to_class(cls, name)
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/models/options.py", line 214, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/__init__.py", line 33, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/utils.py", line 211, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/utils.py", line 115, in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/REMOVED/REMOVED/python3.6/env/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 30, in <module>
    'Did you install mysqlclient or MySQL-python?' % e
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'.
Did you install mysqlclient or MySQL-python?

Ich sehe, dass ich vermisst werde-Python-mysql-Erweiterung oder-Treiber. Ich habe versucht, es zu installieren, wie vorgeschlagen. Wenn ich laufen; pip install mysqlclient ich bekommen;

Collecting mysqlclient
  Using cached mysqlclient-1.3.10.tar.gz
Installing collected packages: mysqlclient
  Running setup.py install for mysqlclient ... error
    Complete output from command /REMOVED/REMOVED/python3.6/env/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7g3likz_/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-y1mak800-record/install-record.txt --single-version-externally-managed --compile --install-headers /REMOVED/REMOVED/python3.6/env/include/site/python3.6/mysqlclient:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    copying _mysql_exceptions.py -> build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/__init__.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/compat.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/connections.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/converters.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/cursors.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/release.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/times.py -> build/lib.linux-x86_64-3.6/MySQLdb
    creating build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    running build_ext
    building '_mysql' extension
    creating build/temp.linux-x86_64-3.6
    gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,3,10,'final',0) -D__version__=1.3.10 -I/usr/include/mysql -I/REMOVED/REMOVED/python3.6/env/include -I/usr/local/include/python3.6m -c _mysql.c -o build/temp.linux-x86_64-3.6/_mysql.o
    gcc: error trying to exec 'as': execvp: Permission denied
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/REMOVED/REMOVED/python3.6/env/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7g3likz_/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-y1mak800-record/install-record.txt --single-version-externally-managed --compile --install-headers /REMOVED/REMOVED/python3.6/env/include/site/python3.6/mysqlclient" failed with error code 1 in /tmp/pip-build-7g3likz_/mysqlclient/

Scheint dies nicht zu funktionieren. Ich habe versucht zu installieren, solidarisch Pakete mit Hilfe von yum nach der Suche im internet. Habe ich versucht zu installieren yum install python3-devel aber dies ist nicht verfügbar (No package python3-devel available.) und ich sehe es ist eigentlich in den epel-repository. Also ich hab yum search python dev und ich bekomme diese;

dbus-python-devel.x86_64 : Libraries and headers for dbus-python
gstreamer-python-devel.x86_64 : Headers for developing programs that will use gstreamer-python
libimobiledevice-python.x86_64 : Python bindings for libimobiledevice
pyldb-devel.x86_64 : Development files for the Python bindings for the LDB library
python-behave.noarch : Tools for the behavior-driven development, Python style
python-cherrypy.noarch : Pythonic, object-oriented web development framework
python-cherrypy2.noarch : Pythonic, object-oriented web development framework
python-devel.x86_64 : The libraries and header files needed for Python development
python-devel.i686 : The libraries and header files needed for Python development
python-igraph-devel.x86_64 : Development files for igraph
python-imaging-devel.x86_64 : Development files for python-imaging
python-mozdevice.noarch : Mozilla-authored device management
python-pyblock.x86_64 : Python modules for dealing with block devices
python-pyldns.x86_64 : Header files, libraries and development documentation for ldns.
python-pyside-devel.i686 : Development files for python-pyside
python-pyside-devel.x86_64 : Development files for python-pyside
python-tools.x86_64 : A collection of development tools included with Python
python34-devel.i686 : Libraries and header files needed for Python 3 development
python34-devel.x86_64 : Libraries and header files needed for Python 3 development
wxPython-devel.i686 : Development files for wxPython add-on modules
wxPython-devel.x86_64 : Development files for wxPython add-on modules
python-pycxx-devel.noarch : PyCXX header and source files

Dies ist, was ich bisher ausprobiert habe. Ich bin versucht, meine Django-app läuft auf MySQL aber die Erweiterung oder Modul nicht angezeigt werden, installiert.

InformationsquelleAutor | 2017-08-08



2 Replies
  1. 0

    Den gcc: error trying to exec 'as': execvp: Permission denied Diagnose ist ziemlich klar. Verwenden which as um sicherzustellen, dass Sie nicht setzen eine weitere Datei mit dem Namen as auf Ihre $PATH. Sie wollen auf den Punkt kommen, wo Sie erfolgreich kompilieren eine einfache hello.c Hello World-Programm, das beinhaltet gcc Herstellung von Assembler-code, und as drehen, dass in intel-x86-object-code. Versuchen Sie dies:

    sudo yum install gcc binutils-devel

    Überprüfen, ob es gelungen ist, durch ausführen which as; as --version und sehen ein banner wie „GNU assembler (GNU Binutils for Ubuntu) 2.27“.

    • Nach dem ausführen sudo yum install gcc binutils-devel erfolgreich; which as zeigt; /usr/bin/as Für as --version bekomme ich so etwas wie; GNU assembler version 2.20.51.0.2-5.47.el6_9.1 20100205 .. This assembler was configured for a target of x86_64-redhat-linux‘.`
  2. 0

    Sie derzeit nicht über die Berechtigungen zum pip install mysqlclient. Da dies centos, Sie wollen wahrscheinlich nicht zu verwenden pip (es sei denn, Sie richten eine virtualenv). Sie ausführen möchten yum install mysql-python

    • Läuft yum install mysql-python zurück; No package mysql-python available. möchte ich ein virtualenv, die ich habe setup mit python 3.6
    • Einloggen und aktivieren der virtualenv als root und dann läuft pip install mysqlclient ich es geschafft, mysqlclient installieren. Also ich hatte einfach nicht die Berechtigungen. Wie gebe ich die Berechtigungen auf mein Cpanel Benutzer werden in der Lage zu laufen pip install mysqlclient
    • Ahh. Installation virtualenv als Wurzel war wahrscheinlich Ihr problem. Sie brauchen, um zu sehen, welcher Benutzer cpanel läuft (ich denke, es ist einfach cpanel), und geben Sie Berechtigungen für die virtualenv. Was ich wahrscheinlich tun ist: machen Sie eine pip-freeze se, welche Pakete installiert sind, erstellen Sie dann eine neue virtualenv mit dem cpanel user (sudo su cpanel, oder sudo -u cpanel bash öffnen Sie eine shell als Benutzer).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.