ImportError: нет модуля с именем dash
Я не могу установить тире на рабочем сервере. В местном я импортировал
pip install dash==0.29.0
Но в прод это не работает. Когда я использую
sudo apt-get install python dash
его показ
> "dash is already the newest version (0.5.8-2.4)"
, однако при использовании import dash получаю
> "ImportError: No module named dash"
также пытался
sudo pip install python dash==0.29.0
но это дает ниже ошибку:
Requirement already satisfied: python in /usr/lib/python2.7/lib-dynload
Collecting dash==0.29.0
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
wb.build(autobuilding=True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
require_hashes
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 278, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 465, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 423, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_pages
page = self._get_page(location)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 683, in _get_page
return HTMLPage.get_page(link, session=self.session)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 792, in get_page
"Cache-Control": "max-age=600",
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 386, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
timeout=timeout
File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
6 ответов
Команда sudo apt-get install python dash
устанавливает системный пакет python (правильный) и системный пакетdash
(неверно), который является оболочкой Linux.
После установки Python с sudo apt-get install python
, чтобы установить пакетPython, вам нужно сделать sudo pip install dash==0.29.0
или же sudo python -m pip install dash==0.29.0
,
У меня была такая же проблема, я решил запустить pip install dash
на терминале conda (если вы используете Anaconda).
Из того, что я могу сказать - а я очень зеленый - похоже, что python / environment сканируют модули по имени файла в соответствующем каталоге "пакетов сайта". Я установил Dash через командную строку для моего системного Python, а затем также через командную строку anaconda.
Когда я пытался импортировать тире в Spyder через anaconda, я получал ту же ошибку. Мне удалось исправить проблему, переименовав папку, содержащую файл инициализации, с dash_rendered на просто dash.
Похоже, что тогда, когда Spyder сканировал свои пакеты, он мог определить правильный каталог.
У меня не было проблем с установкой dash на python, как правило, с помощью команды, предоставленной из Plotly в командной строке.
pip install dash==1.7.0
Я вижу, что это было год назад, и что Dash с тех пор немного изменился - но, надеюсь, это поможет будущим пользователям, чьи среды не распознают модуль как "тире" без переименования, как в Spyder.
Создайте виртуальную среду:
virtualenv venv # creates a virtualenv called "venv"
source venv/bin/activate # uses the virtualenv
а потом
pip install dash
Если вы используете блокнот Jupyter или Jupyter Lab, попробуйте установить
jupyter-dash
по:
pip install jupyter-dash
в коде:
from jupyter_dash import JupyterDash
pd.options.plotting.backend = "plotly"
file>NewProjectsSetup>Preferencesfornewprojects>PythonInterpreter> нажмите на символ + для поиска пакетов, найдите тире, установите пакет, и все будет в порядке.