Virtualenv: Tkinter - فشل في بيئة افتراضية

تم إنشاؤها على ١٤ مارس ٢٠١١  ·  12تعليقات  ·  مصدر: pypa/virtualenv

عندما يتم استخدام Virtualenv الذي يشارك في حزم موقع البيئة العالمية للتطبيق القائم على Tk باستخدام Tk العالمي.

لا يمكن لـ Tkinter التهيئة بشكل صحيح في Virtualenv لأنه يفشل في البحث بشكل صحيح عن موارده - والتي لا تزال في بيئة Python العالمية.

\Documents and Settings\Roger\Desktop\windows-install-bits>cd \venvtest

C:\venvtest>Scripts\activate.bat
(venvtest) C:\venvtest>python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
>>> f= Tk()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Tk' is not defined
>>> f= Tkinter.Tk()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python26\Lib\lib-tk\Tkinter.py", line 1643, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, want
objects, useTk, sync, use)
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
    c:/Python26/lib/tcl8.5 c:/venvtest/lib/tcl8.5 c:/lib/tcl8.5 c:/venvtest/libr
ary c:/library c:/tcl8.5.2/library c:/tcl8.5.2/library



This probably means that Tcl wasn't installed properly.

>>> ^Z


(venvtest) C:\venvtest>deactivate

ما أتوقعه هو أن تعمل بيئة افتراضية بنفس طريقة عمل بيئة الكرة الأرضية مثل: -

C:\venvtest>c:\Python26\python.exe
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
>>> f = Tkinter.Tk()
>>> ^Z


C:\venvtest>

بعد إجراء بعض التجارب ، وجدت أن نسخ مجلدات c: \ python26 \ tcl {tcl، tk} 8.5 في c: \ venvtest \ Libs يحل المشكلات.


bug

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

لا تزال مشكلة في Virtualenv 15.0.1.
... مجرد قول'

ال 12 كومينتر

في الواقع ، هناك طريقة أفضل لإصلاح ذلك تتمثل في تعيين مسار TCL_LIBRARY بتنسيق
activ.bat أو قم بتغيير FixTk.py للتعرف على virtualenv.


Original Comment By: Roger Gammans

أنا أيضًا أقوم فقط بتعيين مسار متغير البيئة TCL_LIBRARY في activ.bat. لذا فإن كل ما يحتاجه Virtualenv هو إضافة هذا السطر لتنشيط bat تلقائيًا.

هناك أيضًا موضوع حول stackoverflow حول هذه المشكلة:
http://stackoverflow.com/questions/15884075/tkinter-in-a-virtualenv

لقد قمت أيضًا بتعيين متغير البيئة في activ.bat. ومع ذلك سيكون رائعًا إذا تم القيام بذلك تلقائيًا.

لا تزال مشكلة في Virtualenv 15.0.1.
... مجرد قول'

تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه في حالة عدم حدوث أي نشاط آخر. فقط أضف تعليقًا إذا كنت تريد إبقائه مفتوحًا. شكرا لمساهماتكم.

يبدو أنه لا يزال يمثل مشكلة

تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه في حالة عدم حدوث أي نشاط آخر. فقط أضف تعليقًا إذا كنت تريد إبقائه مفتوحًا. شكرا لمساهماتكم.

هذا لا يزال يمثل مشكلة. لقد ضربتها مؤخرًا على نظام Mac - إصلاح https://github.com/pypa/virtualenv/issues/93 لم يحل المشكلة على Mac.

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

على نظام Windows ، لا تزال هناك مشكلة في Python 2.7 ولكن يبدو أنه تم حلها في Python 3.8 باستخدام الوحدة النمطية venv .

لا تتردد في تقديم مشكلة جديدة ، مع رسالة الخطأ وإرشادات إعادة الإنتاج ومعلومات حول كيفية تثبيت Python.

هذا يعني فقط أن المشرفين على المشروع لم يعطوا الأولوية له كما ينبغي.

لا يتم دفع رواتب مديري المشروع في الاعتبار ، ويفعلون ذلك مجانًا في أوقاتهم الشخصية ، ولا أعتقد أنه يمكنك التحدث عن they should . إذا كانت هذه المشكلة تمثل مشكلة بالنسبة لك ، فيرجى التفكير في ملء PR بإصلاح. جميع الشفرات مفتوحة المصدر ومتاحة لك مجانًا.

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