Пытаюсь развернуть на pythonanywhere и не работает

#django #deployment #pythonanywhere

#джанго #развертывание #python где угодно

Вопрос:

Я загрузил средство установки pythonanywhere и пытаюсь выполнить развертывание с помощью следующей строки:

 pa_autoconfigure_django.py <https://github.com/myusername/myproject.git>
  

Затем я получаю эту ключевую ошибку. Мой проект выполняется на локальном.

  File "/projects/hosproject/venv/lib/python3.7/site-packages/pythonanywhere/project.py", line 16, in __init__
    self.virtualenv = Virtualenv(self.domain, self.python_version)
  File "/projects/hosproject/venv/lib/python3.7/site-packages/pythonanywhere/virtualenvs.py", line 12, in __init__
    self.path = Path(os.environ["WORKON_HOME"]) / domain
  File "/projects/hosproject/venv/bin/../lib/python3.7/os.py", line 678, in __getitem__
    raise KeyError(key) from None
KeyError: 'WORKON_HOME'
  

Нужна некоторая помощь, чтобы отладить это и попытаться развернуть снова. Если это поможет, я новичок в Django и следую этому руководству: https://tutorial.djangogirls.org/en/deploy /.

Комментарии:

1. Похоже, что вам не хватает некоторых переменных окружения, требуемых virtualenvwrapper. Что ты получаешь , когда бежишь which virtualenvwrapper.sh ?

2. Я думаю, вы запускаете сценарий развертывания на своем собственном компьютере — его нужно запустить в консоли bash на PythonAnywhere.

Ответ №1:

Как отметил Джайлс:

Похоже, что вы, возможно, запускаете инструменты PythonAnywhere с терминала на своем собственном компьютере — вы должны запустить его в консоли bash на PythonAnywhere — вы можете запустить его со страницы «Консоли». (курсив мой)

Однако я добрался до этого только KeyError: WORKON_HOME после выполнения нескольких команд, которых у меня не должно было быть (по крайней мере, это упростит очистку):

 $ pip3 install --user pythonanywhere
$ pa_autoconfigure_django.py --python=3.7 git@github.com:pzrq/djangogirls-tutorial-blog.git
-bash: pa_autoconfigure_django.py: command not found

$ find / -name "pa_autoconfigure_django.py"
$ /Users/pzrq/Library/Python/3.7/bin/pa_autoconfigure_django.py --python=3.7 git@github.com:pzrq/djangogirls-tutorial-blog.git
Traceback (most recent call last):
File "/Users/pzrq/Library/Python/3.7/bin/pa_autoconfigure_django.py", line 19, in <module>
    from docopt import docopt
ModuleNotFoundError: No module named 'docopt'

$ pip install docopt
...
$ /Users/pzrq/Library/Python/3.7/bin/pa_autoconfigure_django.py --python=3.7 git@github.com:pzrq/djangogirls-tutorial-blog.git
...
ModuleNotFoundError: No module named 'pythonanywhere'

$ pip install pythonanywhere
...
$ /Users/pzrq/Library/Python/3.7/bin/pa_autoconfigure_django.py --python=3.7 git@github.com:pzrq/djangogirls-tutorial-blog.git
Traceback (most recent call last):
  File "/Users/pzrq/Library/Python/3.7/bin/pa_autoconfigure_django.py", line 52, in <module>
    main(arguments['<git-repo-url>'], arguments['--domain'], arguments['--python'], nuke=arguments.get('--nuke'))
  File "/Users/pzrq/Library/Python/3.7/bin/pa_autoconfigure_django.py", line 33, in main
    project = DjangoProject(domain, python_version)
  File "/Users/pzrq/Projects/djangogirls/myvenv/lib/python3.7/site-packages/pythonanywhere/project.py", line 16, in __init__
    self.virtualenv = Virtualenv(self.domain, self.python_version)
  File "/Users/pzrq/Projects/djangogirls/myvenv/lib/python3.7/site-packages/pythonanywhere/virtualenvs.py", line 12, in __init__
    self.path = Path(os.environ["WORKON_HOME"]) / domain
  File "/usr/local/bin/../Cellar/python/3.7.3/bin/../Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", line 678, in __getitem__
    raise KeyError(key) from None
KeyError: 'WORKON_HOME'
  

Комментарии:

1. Вы могли бы установить pythonanywhere пакет на свой локальный компьютер, и вы найдете часть кода пригодным для использования, но для успешного запуска pa_autoconfigure_django.py вам нужно запустить его на PythonAnywhere из-за переменных окружения и того факта, что часть процесса находится git clone в репозитории.

2. Спасибо, чтобы прояснить вышеуказанную ошибку, которая произошла только тогда, когда я неправильно запустил команды на своем локальном компьютере, а не в оболочке pythonanywhere.