Pipenv: تعذر تشغيل نص بيثون مفرد بواسطة pipenv أثناء بناء عامل الإرساء

تم إنشاؤها على ٢ فبراير ٢٠١٨  ·  3تعليقات  ·  مصدر: pypa/pipenv

يؤدي استخدام دليل تشغيل pipenv / somescript.py إلى فشل pipenv ، لأنه يبحث عن directory / somescript.py في PATH

صف بيئتك
  1. نوع نظام التشغيل Ubuntu
  2. إصدار Python: $ python -V Python 3.6
  3. إصدار Pipenv: $ pipenv --version سيد
نتيجة متوقعة

يقوم pipenv بتشغيل البرنامج النصي باستخدام بيئة افتراضية تم إنشاؤها

نتيجة فعلية

الخطوة 26/29: تشغيل ls $ PROJECT_PATH | grep setup.py
---> يعمل في 7811236ec5ee
setup.py
إزالة الحاوية الوسيطة 7811236ec5ee
—-> ba280fab02c3
الخطوة 27/29: تشغيل RUN pipenv قم بتشغيل $ PROJECT_PATH / setup.py developer
—-> يعمل في b48df28fbe12
خطأ: تعذر العثور على الأمر /opt/project/setup.py داخل PATH.

خطوات التكرار

مقتطف من ملف الرصيف:
تشغيل ls $ PROJECT_PATH | grep setup.py
RUN pipenv قم بتشغيل $ PROJECT_PATH / setup.py Develop

التعليق الأكثر فائدة

jacekjab ، لا يمكنك تشغيل غلاف pipenv داخل Docker نظرًا لأنه لا يدعم الأصداف الفرعية كما هو مذكور في stacktrace. pipenv run مخصص للنصوص / التطبيقات المثبتة على المسار مع تحديد shebang كيفية استخدامها.

في حالتك أعتقد أن ما تبحث عنه هو pipenv run python somescript.py أو أضف كلمة shebang في الجزء العلوي من النص.

ال 3 كومينتر

وتغيير Dockerfile إلى:

ENV SHELL=/bin/bash
RUN pipenv shell -c "$PROJECT_PATH/setup.py develop; exit $?"

النتائج في

Spawning environment shell (/bin/bash). Use 'exit' to leave.
Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    load_entry_point('pipenv==9.0.3', 'console_scripts', 'pipenv')()
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 2204, in shell
    do_shell(three=three, python=python, fancy=fancy, shell_args=shell_args)
  File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 2167, in do_shell
    c.interact(escape_character=None)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/pexpect/pty_spawn.py", line 744, in interact
    mode = tty.tcgetattr(self.STDIN_FILENO)
termios.error: (25, 'Inappropriate ioctl for device')

أعتقد أنه يمكنك تحقيق الشيء نفسه على الأرجح مع: pipenv run python -c "import this" (فقط استبدل import this بمنطقك).

jacekjab ، لا يمكنك تشغيل غلاف pipenv داخل Docker نظرًا لأنه لا يدعم الأصداف الفرعية كما هو مذكور في stacktrace. pipenv run مخصص للنصوص / التطبيقات المثبتة على المسار مع تحديد shebang كيفية استخدامها.

في حالتك أعتقد أن ما تبحث عنه هو pipenv run python somescript.py أو أضف كلمة shebang في الجزء العلوي من النص.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات