Autojump: لم يتم العثور على الوحدة النمطية خطأ في إصدار الحزمة الجديد

تم إنشاؤها على ٢٢ نوفمبر ٢٠١٩  ·  22تعليقات  ·  مصدر: wting/autojump

لقد قمت بترقية autojump إلى الإصدار 22.5.3-3 ، وعند استخدام cd أو j ، أتلقى هذا الخطأ:

Traceback (most recent call last):                                                                 
  File "/usr/bin/autojump", line 39, in <module>
    from autojump_argparse import ArgumentParser
ModuleNotFoundError: No module named 'autojump_argparse'

لقد خفضته إلى الإصدار 22.5.3-1 ، وهو يعمل.
أنا أستخدم آرتش لينكس.

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

أواجه هذه المشكلة عندما أقوم بترقية python3.8 إلى python3.9 ، لذلك قمت فقط بنسخ بعض حزم autojump في python3.8 إلى python3.9 ، وقمت بحل هذه المشكلة.

cp /usr/lib/python3.8/site-packages/autojump* /usr/lib/python3.9/site-packages/

ال 22 كومينتر

نفس الشيء هنا على manjaro :(
نظام التشغيل: Manjaro 18.1.3 Juhraya
النواة: x86_64 Linux 5.3.11-1-MANJARO

وجدت نفس الشيء في Manjaro:

Linux version 5.3.11-1-MANJARO
DISTRIB_ID=ManjaroLinux
DISTRIB_RELEASE=18.1.3
DISTRIB_CODENAME=Juhraya
DISTRIB_DESCRIPTION="Manjaro Linux"

تم إصلاح السلوك عن طريق إزالة autojump باستخدام yay وإعادة التثبيت باستخدام بنية نظيفة باستخدام نفس الشيء.

أدى هذا إلى حل السلوك بعد إعادة تحديد مصادر ملف التكوين الخاص بي مقابل zsh .

أيضا Manjaro 18.1.3 هنا. لم تنجح إزالة وإعادة تثبيت الحزمة autojump بالنسبة لي. فشل إعادة التثبيت مع

==> Error: Could not find all required packages:
    python>=3.8 (Wanted by: autojump)

إصدار الثعبان الخاص بي هو بالفعل 3.7.4.

يبدو أن الحزمة autojump-git تعمل الآن.

أحافظ على حزمة القفزة التلقائية لنظام Arch Linux عبر AUR.

  • يتضمن الشكل 22.5.3-5 إصدارًا من تبعية Python ويتضمن الحل الذي اقترحه hefteg في FS # 60929
  • 22.5.3-1 لا تملك هذا الانتقال إلى حزم الموقع

أريد أن أعرف ما إذا كان سبب خطأ الوحدة غير موجود يرجع إلى تنفيذ إصلاح hefteg.

أستخدم zsh على Arch ولا أجرب ذلك ، لذا

  1. هل قمت بالبناء باستخدام makepkg أو بعض مساعد AUR (لا تستخدم مساعد AUR)؟
  2. هل لديك أي شيء في ~/.zshrc الخاص بك أو أي ملف zsh يشير إلى أو مصدر أي شيء للقفز التلقائي؟

مستخدمو Manjaro: اعلموا أن Manjaro! = Arch ... بناءً على تعليق Syphdias ، فإن إصدار python الخاص بك هو وراء Arch وهذا هو سبب عدم

يمكنك تغيير depends= و _python= في PKGBUILD إلى python3.7 وإعادة البناء ويجب أن يعمل من أجلك.

نعم ، أنا تحت قيادة مانجارو ، يا سيئ.
أنا أستخدم Yay ، وأنا متأكد من أن لدي سطرًا يذكر autojump في .zshrc ، لكن لا يمكنني تذكر ماذا.
سأحاول غدا.

أفترض أن yay هو مساعد AUR. تسبب مشاكل أكثر مما تحل. قم بتعديل PKGBUILD كما ذكرت وقم بالبناء باستخدام makepkg وأعتقد أنك ستكون على ما يرام ... ربما أغلق هذه المشكلة نظرًا لأنها ليست متعلقة بالمنبع.

أيضا Manjaro 18.1.3 هنا. لم تنجح إزالة وإعادة تثبيت الحزمة autojump بالنسبة لي. فشل إعادة التثبيت مع

==> Error: Could not find all required packages:
    python>=3.8 (Wanted by: autojump)

إصدار الثعبان الخاص بي هو بالفعل 3.7.4.

يبدو أن الحزمة autojump-git تعمل الآن.

تم الآن كسر Autojump-git في Manjaro أيضًا. لا تقم بالترقية أو التثبيت.

pwoehrer -

مستخدمو Manjaro: اعلموا أن Manjaro! = Arch ... بناءً على تعليق Syphdias ، فإن إصدار python الخاص بك هو وراء Arch وهذا هو سبب عدم

تثبيت AUR pkg خاطئ تمامًا. تم تثبيت الوحدات المطلوبة في مجلد usr / lib / site-packages خارج ../lib/python3.8/site-packages.

noelar - /usr/lib/python3.8/site-packages/ هو المكان الصحيح لذلك. انظر: https://bugs.archlinux.org/task/60929

لا تتردد في تصحيح لي إذا كنت مخطئا.

Graysky2 صحيح: إن مكان تثبيت المكتبات هو بالفعل دليل حزم المواقع. لكن...

القفزة التلقائية على هذا النحو تحتاج فقط إلى python> = 2.6. هل هناك سبب مقنع للقوة> = 3.8؟

إذا لم يكن الأمر كذلك ، فإنني أقترح الحصول على إصدار Python الصحيح للنظام من خلال القيام بشيء مثل هذا:

depends=('python>=2.6`)
_python=python${/usr/bin/env python -V | grep -Po '\d+\.\d+'}

سيؤدي ذلك إلى التخلص من الحاجة إلى العبث بالحزمة في قسم التحضير وكذلك استخدام المسارات الصحيحة للنظام.

يؤدي فرض إصدار python إلى 3.8 إلى كسر الحزمة لكل نظام (Arch وكذلك المشتقات) لا يستخدم أو لا يمكنه لأي سبب من الأسباب استخدام أحدث إصدار من Python. بالإضافة إلى ذلك ، سيتم كسر الحزمة بمجرد تغيير الإصدار المشحون مع Arch مرة أخرى.

إخلاء المسؤولية: أنا لست مبرمجًا ولا مشرفًا على حزمة ، لذلك قد تكون أجزاء أو كل ما قلته مجرد هراء أو قد تكون هناك طرق أكثر إيجازًا أو أنيقة لتحقيق نفس الهدف.

تعجبني الفكرة ، لكن إذا كان ذلك لن ينجح إلا إذا كان لدى آلة الإنشاء نفس إصدار Python مثل جهاز العميل. بمعنى آخر ، يمكن للمرء أن يبني على جهاز به 3.8 (قوس) ولكن بعد ذلك يمكن تثبيته على Manjaro الحالي (3.7). بافتراض عدم وجود اختلافات 3.7 مقابل 3.8 ، فسيكون هناك دليل إضافي فقط ....

هل يعرف أي شخص على وجه اليقين ما إذا كانت هناك اختلافات في الواقع ، أي هل ستعمل القفزة التلقائية المبنية ضد python3.8 على نظام باستخدام python3.7؟

هل إصدار /usr/lib/python/site-packages/ مقبول أم أنه تم إصداره للسبب الذي أسأل عنه أعلاه؟

أنا لست خبيرًا في الثعبان بأي حال من الأحوال ، لذلك ربما لا أفهم المشكلة بالضبط.

من خلال النظر إلى القفزة التلقائية ، فهي نقية بيثون (حسناً وبعض نكهات الصدف ، لكن لا ينبغي أن يكون هذا هو الهدف). تنتج عبارات الترجمة في PKGBUILD رمز بايت وسيط (* .pyc) للمكتبات (بقدر ما أعرف أن تلك البيانات تعتمد على الإصدار ، ولكن يتم تجاهلها على أي حال في وقت التشغيل إذا لم تتطابق الإصدارات). عادةً ما يتم إنشاء رمز البايت مسبقًا لتمكين المستخدمين الذين ليس لديهم أذونات الكتابة من الاستفادة من التسريع أيضًا.
بالنظر إلى أن أذونات الكتابة ضرورية للتثبيت على أي حال ، سيكون من المنطقي بالنسبة لي إنشاء رمز بايت للمكتبات في وقت التثبيت ، وليس في وقت الإنشاء.

تمت كتابة مصدر python للقفز التلقائي بطريقة لا تهتم بأي إصدار من مترجم Python متاح ، طالما أنه> = 2.6.

لكن مرة أخرى: لست خبيرًا ، فقط أحب القفز التلقائي والعبث في الثعبان.

مانجارو هنا أيضًا ،

مثل @ graysky2 قال ،

1. wget https://aur.archlinux.org/cgit/aur.git/snapshot/autojump.tar.gz
2. tar -xzvf autojump.tar.gz
3. cd autojump && vim PKGBUILD

# depends=('python>=3.7')
# _python=python3.7
4. replace all the 3.8 to 3.7
5. makepkg
6. sudo pacman -U autojump-22.5.3-5-any.pkg.tar.xz

أعتقد أن ذلك سيكون على ما يرام.

pwoehrer - تكمن المشكلة في أن المرء يحتاج إلى إعادة بناء هذا مقابل إصدار رئيسي من إصدار pkgver ويغير المتغير _python ولكن نظرًا لأنه AUR ، يجب أن أجبره باستخدام نسخة python3 dep.

إذا كانت هناك طريقة أكثر ذكاءً للحفاظ على التناسق ، فيرجى مشاركتها معي.

على سبيل المثال ، إذا أنشأت قفزة تلقائية ضد python v3.7.x ، فستحصل على:

% pacman -Ql autojump                                                                                       
...
autojump /usr/lib/python3/site-packages/__pycache__/autojump_argparse.cpython-37.opt-1.pyc
autojump /usr/lib/python3/site-packages/__pycache__/autojump_argparse.cpython-37.pyc
autojump /usr/lib/python3/site-packages/__pycache__/autojump_data.cpython-37.opt-1.pyc
autojump /usr/lib/python3/site-packages/__pycache__/autojump_data.cpython-37.pyc
autojump /usr/lib/python3/site-packages/__pycache__/autojump_match.cpython-37.opt-1.pyc
autojump /usr/lib/python3/site-packages/__pycache__/autojump_match.cpython-37.pyc
autojump /usr/lib/python3/site-packages/__pycache__/autojump_utils.cpython-37.opt-1.pyc
autojump /usr/lib/python3/site-packages/__pycache__/autojump_utils.cpython-37.pyc
...

أخشى أنه طالما تم تضمين الملف المترجم * .pyc في الحزمة ، فلا توجد طريقة لتحقيق ذلك. ولكن كما قلت من قبل ، ليست هناك حاجة فعلية لإدراجها في الحزمة. سيكون من الأفضل إنشائها في وقت التثبيت ، لأنها ستستخدم إصدار python من النظام وتكون مستقلة عن النظام الأساسي. * من المفترض أن يتم إنشاء * .pc عند تشغيل مكتبة في المرة الأولى.

كما أنها ليست ضرورية تمامًا لكي تعمل ميزة autojump ، فهي موجودة فقط لتوفير القليل من التسريع على الأنظمة التي لا يملك فيها المستخدم إذنًا بالكتابة إلى دليل حزمة الموقع.

لذلك: لا ، لا أعتقد أن هناك طريقة أفضل إذا كانت * .pyc بحاجة إلى تضمينها في الحزمة. :-(

تم توضيح مشكلة عدم القيام بذلك بهذه الطريقة في FS # 60929

إذا قمنا بتطبيق autojump في لغة مترجمة ، فلا داعي للقلق بشأن هذا النوع من المشكلات. لقد أعدت كتابته في Go وكنت أستخدمه لفترة طويلة ، ربما ترغب في تجربته. (https://github.com/suzaku/shonenjump)

أواجه هذه المشكلة عندما أقوم بترقية python3.8 إلى python3.9 ، لذلك قمت فقط بنسخ بعض حزم autojump في python3.8 إلى python3.9 ، وقمت بحل هذه المشكلة.

cp /usr/lib/python3.8/site-packages/autojump* /usr/lib/python3.9/site-packages/

أواجه هذه المشكلة عندما أقوم بترقية python3.8 إلى python3.9 ، لذلك قمت فقط بنسخ بعض حزم autojump في python3.8 إلى python3.9 ، وقمت بحل هذه المشكلة.

cp /usr/lib/python3.8/site-packages/autojump* /usr/lib/python3.9/site-packages/

يمكنك تجربة أداتي ، ويمكن تثبيتها بسهولة باستخدام brew .

heppen - عليك إعادة البناء مثل أي برنامج نصي من

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