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''