Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

238
Views
La implementación del motor de aplicaciones de Google falla: error al encontrar la especificación del módulo para 'pip' (AttributeError: el módulo '__main__' no tiene el atributo '__file__')

Estamos usando el símbolo del sistema c:\gcloud app deploy app.yaml , pero obtenemos el siguiente error:

 Running "python3 -m pip install --requirement requirements.txt --upgrade --upgrade-strategy only-if-needed --no-warn-script-location --no-warn-conflicts --force-reinstall --no-compile (PIP_CACHE_DIR=/layers/google.python.pip/pipcache PIP_DISABLE_PIP_VERSION_CHECK=1)" Step #2 - "build": /layers/google.python.pip/pip/bin/python3: Error while finding module specification for 'pip' (AttributeError: module '__main__' has no attribute '__file__') Step #2 - "build": Done "python3 -m pip install --requirement requirements.txt --upgr..." (34.49892ms) Step #2 - "build": Failure: (ID: 0ea8a540) /layers/google.python.pip/pip/bin/python3: Error while finding module specification for 'pip' (AttributeError: module '__main__' has no attribute '__file__') Step #2 - "build": -------------------------------------------------------------------------------- Step #2 - "build": Running "mv -f /builder/outputs/output-5577006791947779410 /builder/outputs/output" Step #2 - "build": Done "mv -f /builder/outputs/output-5577006791947779410 /builder/o..." (12.758866ms) Step #2 - "build": ERROR: failed to build: exit status 1 Finished Step #2 - "build" ERROR ERROR: build step 2 "us.gcr.io/gae-runtimes/buildpacks/python37/builder:python37_20211201_3_7_12_RC00" failed: step exited with non-zero status: 145

Nuestro Requisitos.txt es el siguiente. Actualmente estamos en el motor de aplicaciones estándar de Python 3.7

 firebase_admin==3.0.0 sendgrid==6.9.3 google-auth==1.35.0 google-auth-httplib2==0.1.0 jinja2==3.0.3 MarkupSafe==2.0.1 pytz==2021.3 Flask==2.0.2 twilio==6.46.0 httplib2==0.20.2 requests==2.24.0 requests_toolbelt==0.9.1 google-cloud-tasks==2.7.1 google-cloud-logging==1.15.1 googleapis-common-protos==1.54.0

Por favor, ayuda. El código anterior funcionaba bien antes de actualizar el archivo requirements.txt. Intentamos eliminar gunicorn para permitir que el sistema recogiera lo último de acuerdo con la documentación aquí .

Tenemos una estructura de subdirectorios que almacena todos los archivos .py en controladores y definiciones de base de datos en modelos. Nuestro main.py tiene lo siguiente:

 sys.path.append(os.path.join(os.path.dirname(__file__), '../controllers')) sys.path.append(os.path.join(os.path.dirname(__file__), '../models'))

¿Alguien sabe cómo depurar este error? Error while finding module specification for 'pip' (AttributeError: module '__main__' has no attribute '__file__') . ¿Qué significa esto?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

La versión 60.3.0 de setuptools tiene un error que causa el AttributeError anterior, consulte: https://github.com/pypa/setuptools/issues/3002

Ha sido retirado por Pypi desde entonces:

Los archivos extraídos siempre se ignoran, a menos que sean el único archivo que coincide con un especificador de versión que "ancla" a una versión exacta usando == (sin ningún modificador que lo convierta en un rango, como .*) o ===. De lo contrario, la coincidencia con este especificador de versión debe realizarse según PEP 440 para cosas como versiones locales, relleno cero, etc.

Fuente: https://www.python.org/dev/peps/pep-0592/

Lo que puede hacer a partir de ahora es pasar la versión del paquete setuptools explícitamente, para usar, por ejemplo, la versión 60.2.0 o 60.3.1.

over 4 years ago · Santiago Trujillo Report

0

Al instalar la versión anterior 60.2.0 de setuptools antes de instalar pip-tools, me ayudó a ponerlo en marcha.

pip install setuptools==60.2.0

over 4 years ago · Santiago Trujillo Report

0

Tuve el mismo problema al implementar una función de Google Cloud. El error

función de nube Error al encontrar la especificación del módulo para 'pip' (AttributeError: el módulo ' principal ' no tiene atributo ' archivo '); ID de error: c84b3231

apareció después de comentar algunos paquetes en los requisitos.txt, pero eso no fue nada importante y probablemente no lo causó. Supongo que es más un problema de inestabilidad en Google Storage , ya que esa misma Cloud Function en la que estaba trabajando ya había perdido su archivo tiempo atrás, de repente, de la nada, mostrando:

Archivo no encontrado en la función de nube de ubicación de almacenamiento

y no eliminé ni cambié nada que pudiera explicar esto, ya que Archive not found in the storage location: Google Function sugeriría. Aunque esa respuesta tiene una conjetura muy interesante que podría explicar al menos la primera vez que apareció el error "Archivo no encontrado" y, por lo tanto, hizo que el CF fuera inestable: es posible que haya cambiado la ciudad de la zona horaria del cubo durante la navegación por Google Storage. Hace demasiado tiempo, pero sé que navegué por el GS, por lo tanto, no puedo excluir esto. Cita: "También puede ocurrir [el error Archivo no encontrado] si la región del depósito de GCS no coincide con la región de la función de la nube".

Después de este bloqueo de "Archivo no encontrado", agregué manualmente main.py y requirements.txt y los llené nuevamente con el código de la copia de seguridad. Esto funcionó durante algún tiempo, pero parece haber cierta inestabilidad general en Google Storage. Por lo tanto, mantenga siempre copias de seguridad de sus scripts implementados.

Luego, después de recibir este error de pip de la pregunta en esa Cloud Function ya inestable, esperando uno o dos días, Google Function volvió a mostrar

Archivo no encontrado en la función de nube de ubicación de almacenamiento

Si se encuentra con este error de pip en una función en la nube, podría considerar actualizar pip en "requirements.txt", pero si se encuentra en una función en la nube tan inestable, la mejor solución parece ser crear una nueva función en la nube y copiar todo en allí.

El error de pip probablemente solo muestra que la secuencia de comandos fuente, en este caso los requirements.txt , no se puede ejecutar porque el código fuente ya no está completamente incrustado o ha perdido parte de la incrustación en Google Storage.

O le da una segunda oportunidad a la función de la nube y la edit , vaya a la pestaña Source , haga clic en el Source code desplegable para elegir Inline Editor y agregue main.py y requirements.txt manualmente (Tiempo de Runtime : Python).

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!