فشلت عمليات إنشاء عامل الإرساء هذا الصباح بسبب تغيير في السلوك عند تشغيل pipenv install
في الدليل الجذر.
عند التشغيل بأحدث إصدار (2020.5.28) ، حدث خطأ بعد إنشاء التبعيات وتثبيتها ERROR: Pipenv is not intended to work under the root directory, please choose another path.
يبدو أن هذا تغيير تم تقديمه في # 3386 ، فيما يتعلق بمشكلة أثيرت في # 3434.
هذه المشكلة هي فقط للإشارة إلى أن تغيير السلوك هذا يجب أن يتم إدراجه على أنه كسر في سجل التغيير ، حيث لا يبدو أنه مذكور حاليًا.
في الوقت الحالي ، عملنا على حل هذا الأمر عن طريق تثبيت pipenv
في الإصدار الأخير (2018.11.26).
غير متاح
غير متاح
غير متاح
مرحبًا @ gps035 ،
أواجه نفس المشكلة مع pipenv.
هل يمكنك أن توضح كيف قمت بتثبيت الإصدار pipenv
؟
شكر
أستطيع أن أؤكد أن هذا السلوك لا يحدث في الإصدار 2018.11.26
.
mohamedMok يمكنك استخدام pip install 'pipenv==2018.11.26'
وهو الإصدار الأخير الذي لا يحتوي على هذا التغيير الفاصل .
@ gps035 هل هناك فرصة لإرسال العلاقات العامة لذكرها في سجل التغيير؟
لقد تقدمت بعلاقات عامة لمعالجة هذه المشكلة ، شكرًا للجميع.
ليست تغييرات مضحكة ، فجميع عمال الأرصفة لدينا يستخدمون تثبيت pipenv أثناء الإنشاء: /
واجهت نفس المشكلة ، باستخدام الإصلاح في https://github.com/pypa/pipenv/issues/4273#issuecomment -635303079 عملت معي.
فشلت عمليات إنشاء عامل الإرساء هذا الصباح بسبب تغيير في السلوك عند تشغيل
pipenv install
في الدليل الجذر.
هل يمكنك شرح سير العمل هنا - هل تستخدم --system
؟
كما ذكرت للتو في # 4275:
يرجع السبب الرئيسي للتغيير في المقام الأول إلى تحديد البيئات الافتراضية ومسارات بايثون ذات الصلة - على حد علمي ، كان هذا سببًا جوهريًا للأخطاء والكسر ولم ينجح بشكل أساسي. حقيقة أنه يكسر سير العمل هو أول ما أسمعه أنه يعمل على الإطلاق.
لا يُقصد بهذا أن يكون تغييرًا فاصلًا ، بل يهدف إلى منع تفاعل تم كسره مسبقًا - بالنسبة لأي شخص كان يعمل من أجله ، يرجى تضمين المجموعة الكاملة من وسيطات سطر الأوامر التي كنت تقوم بتمريرها إلى pipenv (على سبيل المثال pipenv install --<whatever>
ومعلومات حول سير عملك:
--system
إلى pipenv ، أو إنشاء Virtualenv الخاص بك ، أو السماح لـ pipenv بإنشاء واحد لك؟ربما يكون هذا كافيا الآن
techalchemy هذه هي الأجزاء ذات الصلة من ملف Dockerfile الذي لم يعد يعمل.
FROM python:3.8
RUN pip install --no-cache-dir pipenv
RUN pipenv install --system --deploy
techalchemy شكرًا
--system
في حالة ما إذا كان مفيدًا للتحقيق في المشكلة أو إعادة إنتاجها ، تظهر خطوات الإنشاء في Make target .
بالنسبة لأي شخص يرغب في استخدام أحدث إصدار من pipenv بـ --system
، قد يكون من المفيد تكييف Dockerfile الخاص بك عن طريق تعيين WORKDIR ونسخ ملف Pipfile / lockfile فيه على النحو التالي:
WORKDIR /code
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
COPY . /code/
python:3-slim
docker تأتي مع Debian GNU/Linux 10
FROM python:3-slim AS base
ENV PYROOT /pyroot
ENV PYTHONUSERBASE $PYROOT
ENV PATH $PATH:$PYROOT/bin
FROM base AS builder
RUN pip install pipenv
COPY Pipfile* ./
RUN PIP_USER=1 PIP_IGNORE_INSTALLED=1 pipenv install --system --deploy --ignore-pipfile
بالنسبة لأي شخص يرغب في استخدام أحدث إصدار من pipenv بـ
--system
، قد يكون من المفيد تكييف Dockerfile الخاص بك عن طريق تعيين WORKDIR ونسخ ملف Pipfile / lockfile فيه على النحو التالي:WORKDIR /code COPY Pipfile Pipfile.lock /code/ RUN pip install pipenv && pipenv install --system COPY . /code/
هذا عمل معي. فقط تذكر أن تقوم بإنشاء /code
dir من قبل.
هذا عمل معي. فقط تذكر أن تقوم بإنشاء
/code
dir من قبل.
يقوم الأمر WORKDIR بالفعل بإنشاء الدليل إذا لم يكن موجودًا
استخدام WORKDIR
لم ينجح معي. أنا أتلقى خطأ
Step 9/9 : RUN PIP_USER=1 PIP_IGNORE_INSTALLED=1 pipenv install --system --deploy --ignore-pipfile
---> Running in da6fa387210f
Installing dependencies from Pipfile.lock (387af5)…
Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/build-5NmaZ4l5/bin/python: not found
Output:
Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/build-5NmaZ4l5/bin/python: not found
Output:
Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/build-5NmaZ4l5/bin/python: not found
Output:
^Cmake: *** [build-image-base] Interrupt: 2
عند استخدام ملف dockerfile أدناه
FROM python:3-slim AS base
ENV PYROOT /pyroot
ENV PYTHONUSERBASE $PYROOT
ENV PATH $PATH:$PYROOT/bin
FROM base AS builder
WORKDIR /build
RUN pip install pipenv
COPY Pipfile* /build/
RUN PIP_USER=1 PIP_IGNORE_INSTALLED=1 pipenv install --system --deploy --ignore-pipfile
هذا لا يبدو أنه خطأ في البناء ، راجع # 4220
كملاحظة جانبية ، لا يتم ضبط $PIP_USER
بواسطة pipenv وأنا غير متأكد نسبيًا من كيفية تفاعل $PYTHONUSERBASE
معها
أيضًا ، سيكون العلم --deploy
بلا معنى إلى حد ما مع العلم --ignore-pipfile
- --deploy
يُستخدم لضمان أن Pipfile
و Pipfile.lock
في محاذاة ، أي أنه تم إنشاء Pipfile.lock
من Pipfile
المقابل. إذا أشرت إلى أنك تريد تجاهل ملف الأنابيب الخاص بك ، فلن يحدث هذا الفحص أبدًا.
على أي حال killuazhu ، قد يكون الخطأ في السجلات التي قمت بتضمينها مرتبطًا بالتلاعب في مسار
كمرجع ، فإن الإصدار الأصلي من # 3434 يحدث عندما يحاول الشخص pipenv install
تحت /
بدون ملف Pipfile. والإعداد في هذه التذكرة هو pipenv install
أقل من /
مع ملف Pipfile ، والذي كان يعمل في 2018.11.26. ومع ذلك ، اختار # 3386 أسلوب دقة خاطئ ، حيث يمنع الاستخدام من الدليل الجذر تمامًا.
شكرًا لك على الإصلاح ، هل لديك الوقت المقدر للوصول عند تضمين الإصلاح في إصدار جديد من حزمة pypi؟
نحن بحاجة إلى التأكد من إصلاح جميع مشكلات الانحدار وسيتم طرح الإصدار الجديد في الأسبوع المقبل
رائع شكرا لك ، أقدر ذلك!
أستطيع أن أؤكد أن هذا السلوك لا يحدث في الإصدار
2018.11.26
.mohamedMok يمكنك استخدام
pip install 'pipenv==2018.11.26'
وهو الإصدار الأخير الذي لا يحتوي على هذا التغيير الفاصل .
لقد تلقيت خطأ مختلفًا قليلاً عند تشغيل python3 -m pipenv install --three --system
Output:
Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/app-4PlAip0Q/bin/python: not found
لقد نجح التثبيت في الإصدار القديم أيضًا بالنسبة لي. شكر!
أستطيع أن أؤكد أن هذا السلوك لا يحدث في الإصدار
2018.11.26
.
mohamedMok يمكنك استخدامpip install 'pipenv==2018.11.26'
وهو الإصدار الأخير الذي لا يحتوي على هذا التغيير الفاصل .لقد تلقيت خطأ مختلفًا قليلاً عند تشغيل
python3 -m pipenv install --three --system
Output: Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/app-4PlAip0Q/bin/python: not found
لقد نجح التثبيت في الإصدار القديم أيضًا بالنسبة لي. شكر!
لدي نفس المشكلة. يتم الآن التثبيت في الإصدار القديم كحل بديل
نحن بحاجة إلى التأكد من إصلاح جميع مشكلات الانحدار وسيتم طرح الإصدار الجديد في الأسبوع المقبل
لا تزال هذه المشكلة موجودة في إصدار 2020.6.2:
انتاج:
فشل تحميل المسارات: / bin / sh: 1: /root/.local/share/virtualenvs/app-lp47FrbD/bin/python: غير موجود
هل يمكنك من فضلك تأكيد ما إذا كان من المتوقع إصلاح هذه المشكلة في إصدار 2020.6.2؟
يمكنني أن أؤكد أنني أعاني من هذه المشكلة مع Dockerfile
FROM python:3.7-slim
ENV LC_ALL C.UTF-8
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
apt-get upgrade && \
apt-get install -y --no-install-recommends libldap2-dev libsasl2-dev libssl-dev && \
apt-get clean autoclean && rm -rf /var/lib/apt/* /var/cache/apt/* && \
apt-get autoremove --purge && \
pip install pipenv --no-cache-dir
WORKDIR /app
COPY Pipfile Pipfile.lock ./
RUN pipenv install --deploy --system --verbose
ENTRYPOINT ["uvicorn", "web.main:app", "--host", "0.0.0.0"]
EXPOSE 8000/tcp
frostming هل يمكنك إعادة فتح المشكلة من فضلك؟
يمكنني أيضًا أن أؤكد أنني أعاني من هذه المشكلة في ملف Dockerfile التالي:
FROM python:3.7.6-slim-stretch
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY . /app
RUN pip install --upgrade pip
RUN pip install pipenv
RUN pipenv install --system --deploy --ignore-pipfile
CMD ["/bin/bash", "scripts/entrypoint.sh"]
هذا هو الخطأ:
Step 10/11 : RUN pipenv install --system --deploy --ignore-pipfile
---> Running in 00386bcedd89
Installing dependencies from Pipfile.lock (d14b54)…
Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/app-4PlAip0Q/bin/python: not found
Output:
Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/app-4PlAip0Q/bin/python: not found
Output:
Failed to load paths: /bin/sh: 1: /root/.local/share/virtualenvs/app-4PlAip0Q/bin/python: not found
بالنسبة للأشخاص الذين لا يزالون يواجهون هذه المشكلة ، فإن أسهل حل هو تكوين
FROM python:3.7-slim
# Set environment varibles
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv==2018.11.26 && pipenv install --system # <- this is the fix
...
التعليق الأكثر فائدة
أستطيع أن أؤكد أن هذا السلوك لا يحدث في الإصدار
2018.11.26
.mohamedMok يمكنك استخدام
pip install 'pipenv==2018.11.26'
وهو الإصدار الأخير الذي لا يحتوي على هذا التغيير الفاصل .