paquetes modulos lista importar clases python django fabric

lista - modulos python



error de importaciĆ³n de la tela: no se puede importar el nombre ''isMappingType'' (4)

Así es como lo arreglé, Eliminar python3

sudo apt-get remove ''python3.*''

Instale la tela usando:

pip install fabric sudo apt-get install fabric

Recibí este error cuando corrí fab polish después de eso:

zsh: / usr / local / bin / fab: intérprete incorrecto: / usr / bin / python3: no existe tal archivo o directorio

Abra /usr/local/bin/fab en vim como sudo, y cambie la primera línea, es decir, #!/usr/bin/python3 a #!/usr/bin/python2.7

Guarda y ejecuta fabuloso pulimento. Todo bien ahora!

Me encontré con este "ImportError: no se puede importar el nombre ''isMappingType''" en medio del proceso para implementar el archivo fab para un proyecto Django.

1.Aquí está la estructura de mi fabfile.py

from __future__ import with_statement from fabric.api import * from fabric.contrib.console import confirm from fabric.contrib.files import append, exists, sed env.hosts = ["127.0.0.1"] env.user = raw_input(''Please enter user:'') def deploy(): sudo("apt-get update -y") sudo("apt-get install git -y") sudo("apt-get install postgresql libpq-dev python-dev python-pip -y") code_dir = ''backend-directory'' if exists(code_dir): run(''cd %s && git pull'' % (code_dir,)) else: run("git clone git://serveraddress/projects/backend-directory") with cd(code_dir): sudo("pip install virtualenv") run("virtualenv -p /usr/bin/python3.4 venv") run("source venv/bin/activate") #sudo("pip install -r requirements/dev.txt") sudo("pip install -r requirements/production.txt") with settings(warn_only=True): with settings(sudo_user = ''postgres''): sudo("psql -c " + ''"CREATE USER new_user WITH PASSWORD '' + "''new_password'';" + ''"'') sudo("psql -c ''ALTER USER new_user CREATEDB;''") sudo("psql -c ''CREATE DATABASE newdb;''") sudo("psql -c ''GRANT ALL PRIVILEGES ON DATABASE ''newdb'' to new_user;''") if run("nginx -v").failed: sudo(" apt-get install nginx -y") code_dir = ''frontend-directory'' if exists(code_dir): run(''cd %s && git pull'' % (code_dir,)) else: run("git clone git://serveraddress/frontend-directory") code_dir = ''backend-directory/project_site'' with cd(code_dir): run("python manage.py makemigrations --settings=project.settings.development") run("python manage.py migrate --settings=project.settings.development") sudo("/etc/init.d/nginx start") with settings(warn_only=True): if run("find /etc/uwsgi").failed: sudo("mkdir /etc/uwsgi") if run("find /etc/uwsgi/vassals").failed: sudo("mkdir /etc/uwsgi/vassals") if run("find /etc/uwsgi/vassals/pam_uwsgi.ini").failed: sudo("ln -s ~/backend-direcoty/project_site/pam_uwsgi.ini /etc/uwsgi/vassals/") run("uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data")

A continuación, he ejecutado el siguiente comando en env virtual

(venv)praneeth@praneeth-Latitude-E6400 ~/wru-pam $ fab deploy

Tengo el siguiente rastro:

Traceback (most recent call last): File "/home/praneeth/wru-pam/venv/bin/fab", line 9, in <module> load_entry_point(''Fabric==1.10.1'', ''console_scripts'', ''fab'')() File "/home/praneeth/wru-pam/venv/lib/python3.4/site-packages/pkg_resources/__init__.py", line 474, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/home/praneeth/wru-pam/venv/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2582, in load_entry_point return ep.load() File "/home/praneeth/wru-pam/venv/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2265, in load return self._load() File "/home/praneeth/wru-pam/venv/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2268, in _load module = __import__(self.module_name, fromlist=[''__name__''], level=0) File "/home/praneeth/wru-pam/venv/lib/python3.4/site-packages/fabric/main.py", line 12, in <module> from operator import isMappingType ImportError: cannot import name ''isMappingType''

¿Cuál podría ser la razón de este error de importación?


Hasta que se lance la implementación de Python 3 de la tela, también puede usar cualquiera de las horquillas disponibles.

Uno de ellos está disponible en el paquete fabric3 pip, que es compatible con Python 3:

Instálelo con pip install fabric3 o pip3 install fabric3

Esto también se menciona en una de las respuestas de la siguiente pregunta: Python 3 support for fabric

Personalmente lo uso en un blog de Pelican que usa la tela para construir o servir el sitio. Funciona perfectamente por ahora.


python2: pip install fabric python3: pip install fabric3


fabric no es compatible con Python 3 :

Fabric es una biblioteca de Python (2.5-2.7) y una herramienta de línea de comandos para agilizar el uso de SSH para la implementación de aplicaciones o tareas de administración de sistemas.

Ver también otros puntos y soluciones en:

Por lo que entiendo, migrar para invoke es lo primero a considerar.

Prueba rápida que demuestra el problema:

$ python2.7 >>> from operator import isMappingType >>> $ python3.4 >>> from operator import isMappingType Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name ''isMappingType''