В моем проекте venv
, python3 manage.py runserver
получит ошибку:
...
sio = socketio.Server(async_mode=async_mode)
AttributeError: module 'socketio' has no attribute 'Server'
но если я буду использовать абсолютный путь python3 для выполнения, все будет в порядке.
# /usr/local/Python3/bin/python3.5 manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
...
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
(27144) wsgi starting up on http://0.0.0.0:8000
Но если я проверю путь python3 в venv
:
(venv_dist) [root@www lll]# ll /home/ldl/repo/myProject/venv_dist/bin/python3
lrwxrwxrwx. 1 root root 9 5月 9 10:43 /home/ldl/repo/myProject/venv_dist/bin/python3 -> python3.5
(venv_dist) [root@www lll]# ll /home/ldl/repo/myProjecg/venv_dist/bin/python3.5
lrwxrwxrwx. 1 root root 32 5月 9 10:43 /home/ldl/repo/myProject/venv_dist/bin/python3.5 -> /usr/local/Python3/bin/python3.5
Видите ли, python3
in venv
перенаправляет наконец на /usr/local/Python3/bin/python3.5
.
абсолютный путь python3
может выполнить успех:
/usr/local/Python3/bin/python3.5 manage.py runserver
но мягкая ссылка python3
не может быть запущена.
python3 manage.py runserver
Моя система - CentOS-7.
EDIT-1
Использовать который:
which python3
/home/ldl/repo/myProject/venv_dist/bin/python3
Использовать python
runserver:
(venv_dist) [root@www myProject]# python --version
Python 3.5.2
(venv_dist) [root@www myProject]# python manage.py runserver
там верхняя ошибка.
EDIT-2
внутри венва:
(venv_dist) [root@www myProject]# pip3 freeze | grep -i socketio
python-socketio==1.9.0
socketio==0.0.9
вне вевн:
[root@www myProject]# pip3 freeze | grep -i socketio
python-socketio==1.8.4
РЕДАКТИРОВАТЬ -3
А вне проекта я тоже могу запустить сервер.
Это также указывает на /usr/local/Python3/bin/python3
.
[root@www myProject]# python3 manage.py runserver
...
Quit the server with CONTROL-C.
(28747) wsgi starting up on http://0.0.0.0:8000
^C[root@www myProject]# which python3
/usr/bin/python3
[root@www myProject]# ll /usr/bin/python3
lrwxrwxrwx. 1 root root 30 12月 10 14:17 /usr/bin/python3 -> /usr/local/Python3/bin/python3
EDIT-4
Я думаю, что этот пакет socketio
не имеет отношения к проблеме, в моем проекте I pip3 uninstall socketio
эта проблема все еще существует.
Но если на моем Mac, если я удалю socketio
в моем venv
, проблема также возникнет.
...
sio = socketio.Server(async_mode=async_mode)
AttributeError: module 'socketio' has no attribute 'Server'
в моем Mac я должен переустановить socketio
в venv
, тогда он может работать нормально.
РЕД-5
На моем удаленном сервере CentOS7.2, ls
venv_dist
, существует программная ссылка lib64
, ссылающаяся на lib
.
(venv_dist) [root@www venv_dist]# ls
bin include lib lib64 pip-selfcheck.json pyvenv.cfg
Но на моем Mac нет lib64
.