Я портирую скрипты 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