Проблема Fabric2 при выполнении Django команд управления - PullRequest
0 голосов
/ 02 февраля 2020

Я портирую скрипты fabri c на python 3 и использую последнюю версию fabri c. Локально я использую python3, а пульт включен python2 Работать с обычными командами bash нормально, но когда я хочу сделать что-то Django, оно прерывается с ошибкой ниже:

from fabric.tasks import task

python = '/data/worker/ve/bin/python'
hosts = ['worker@ip-adress']

@task(hosts=hosts)
def do_that(c):
    with c.prefix('source /data/worker/ve/bin/activate'):
        with c.cd('/home/worker/ve/app'):
            # c.run(f"{python} manage.py showmigrations") this breaks
            c.run('python -V') works
            c.run('ls -la') works
            c.run('which python') works

Ошибка:

Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
  File "/data/worker/ve/lib/python2.7/site-packages/django/core/management/__init__.py", line 10, in <module>
    from django.apps import apps
  File "/data/worker/ve/lib/python2.7/site-packages/django/apps/__init__.py", line 1, in <module>
    from .config import AppConfig
  File "/data/worker/ve/lib/python2.7/site-packages/django/apps/config.py", line 5, in <module>
    from django.utils._os import upath
  File "/data/worker/ve/lib/python2.7/site-packages/django/utils/_os.py", line 5, in <module>
    import tempfile
  File "/opt/rh/python27/root/usr/lib64/python2.7/tempfile.py", line 32, in <module>
    import io as _io
  File "/opt/rh/python27/root/usr/lib64/python2.7/io.py", line 51, in <module>
    import _io
ImportError: /data/worker/ve/lib64/python2.7/lib-dynload/_io.so: undefined symbol: _PyErr_ReplaceException
...