Форум сайта python.su
Здравствуйте. У меня возникла вот какая проблема. Я учусь создавать сайты на Python3, и для обучения поставил себе под винды Pyhton3.6, Apache2, Mysql и под Django в виртуальной питоновсокой среде создаю сайт. Под виндами все нормально работает. Но далее я решил попробовать скинуть свой сайт на линуксовый WEB-сервер (Ubuntu 14). Там я тоже установил Pyhton3.6, Apache2, Mysql, и в виртуальной среде добавил Django и другие нужные мне для работы модули. Но под линуксом ничего работать не стало, а в логах апача постоянно фиксируется ошибка, что не найден модуль “_mysql”. Тогда я попробовал добавить под линукс Python3.5, и в виртуальной среде питона 3.5 снова добавил все нужные модули, но ошибка все та же. Все попытки в интернете найти как добавить этот модуль “_mysql” успехом не увенчались. Вот список установленных модулей:
Django (1.11.4) mysqlclient (1.3.10) olefile (0.44) Pillow (4.2.1) pip (9.0.1) pytz (2017.2) setuptools (36.2.7)
mod_wsgi (pid=17244): Target WSGI script '/var/pyprojects/paradox-portal/pythonProject/ParadoxPortal/ParadoxPortal/wsgi.py' cannot be loaded as Python module. mod_wsgi (pid=17244): Exception occurred processing WSGI script '/var/pyprojects/paradox-portal/pythonProject/ParadoxPortal/ParadoxPortal/wsgi.py'. Traceback (most recent call last): File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 26, in <module> import MySQLdb as Database File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/MySQLdb/__init__.py", line 19, in <module> import _mysql ImportError: No module named '_mysql' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/var/pyprojects/paradox-portal/pythonProject/ParadoxPortal/ParadoxPortal/wsgi.py", line 30, in <module> application = get_wsgi_application() django.setup(set_prefix=False) File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/__init__.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/apps/registry.py", line 108, in populate app_config.import_models() File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/apps/config.py", line 202, in import_models self.models_module = import_module(models_module_name) File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 2254, in _gcd_import File "<frozen importlib._bootstrap>", line 2237, in _find_and_load File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked File "<frozen importlib._bootstrap>", line 1129, in _exec File "<frozen importlib._bootstrap>", line 1471, in exec_module File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed File "/var/pyprojects/paradox-portal/pythonProject/ParadoxPortal/accounts/models.py", line 1, in <module> from django.contrib.auth.models import AbstractUser, BaseUserManager, PermissionsMixin File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/contrib/auth/models.py", line 4, in <module> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 52, in <module> class AbstractBaseUser(models.Model): File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/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 "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/db/models/base.py", line 331, in add_to_class value.contribute_to_class(cls, name) File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/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 "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/db/__init__.py", line 33, in __getattr__ return getattr(connections[DEFAULT_DB_ALIAS], item) File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/db/utils.py", line 211, in __getitem__ backend = load_backend(db['ENGINE']) File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/lib/python3.6/site-packages/django/db/utils.py", line 115, in load_backend return import_module('%s.base' % backend_name) File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/var/pyprojects/paradox-portal/pythonProject/venv3.6/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 '_mysql'. Did you install mysqlclient or MySQL-python?
Отредактировано paradox81ru (Авг. 12, 2017 14:58:57)
Офлайн
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
Но перед єтим поставь сам мускуль.
Офлайн
Во первых у меня как раз в виндах проблем нет, проблемы на линуксе, кроме того, как я уже упоминал, mysql на линуксе не только установлен, но еще и корректно настроен, потому как php-шный сайт, который разумеется тоже требует myscql, на этом веб сервере нормально работает.
Офлайн
paradox81ru
mysqlclient - это не просто набор питоньего кода, при установке этого пакета (как и многих других) пипу нужно скомпилировать некоторое количество бинарников, а для этого необходимы хидеры си для линковки. Если внимательно прочитать инструкцию по установке, то можно увидеть, что в линуксах нужно сначала удовлетворить некоторые зависимости
sudo apt-get install python-dev libmysqlclient-dev
Офлайн
FishHook
Я установил эти зависимости после установки mysqlclient, я действительно узнал об этих зависимостях только уже когда понял что у меня проблема с mysql. Но после установки этих приложений (или как их я не знаю назвать) я заново создал виртуальное окружение, и заново добавил все модули, в том числе и mysqlclient. Причем python-dev я установил именно для своей версии питона (python3.6-dev)
Офлайн
Тема закрыта, проблема решена. Проблема была в неправильно установленном модуле апаче mod_wsgi.
Офлайн
Забудьте Апач как плохой сон.
Офлайн