2011-03-28 5 views
45

के लिए कॉन्फ़िगर नहीं किया जा सकता है आज मैं टिंकर के साथ काम करना शुरू करना चाहता था, लेकिन मुझे कुछ समस्याएं हैं।

Python 3.2 (r32:88445, Mar 28 2011, 04:14:07) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from tkinter import * 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/local/lib/python3.2/tkinter/__init__.py", line 39, in <module> 
import _tkinter # If this fails your Python may not be configured for Tk 
ImportError: No module named _tkinter 

तो मैं टिंकर के साथ काम करने के लिए अपने पायथन 3.2 को कैसे कॉन्फ़िगर कर सकता हूं?

+1

हालांकि यह आपके प्रश्न का सीधे जवाब नहीं देता है, यदि आप लिनक्स पर नवीनतम पायथन का उपयोग करना चाहते हैं, तो पूर्व-संकलित बाइनरी (जैसे एक्टिवपीथन - जिसमें टिंकरर शामिल है) का उपयोग करके बहुत समय बचा होगा। –

+0

हां, अब मुझे पता है। :) –

+1

प्रत्येक लिनक्स वितरण में कभी आधिकारिक पायथन पैकेज होता है। जब तक आपको कुछ विशिष्ट आवश्यकता नहीं होती है, तब तक तृतीय पक्ष बाइनरी का उपयोग करके वास्तव में निराश होता है। उस ने कहा, आप शायद पाइथन में कम समर्थन रखने वाले एक या दो कमांड हैं, लेकिन मुझे यह जानने की जरूरत है कि आप लिनक्स के किस स्वाद का चल रहे हैं। –

उत्तर

23

http://wiki.python.org/moin/TkInter के अनुसार:

If it fails with "No module named _tkinter", your Python configuration needs to be modified to include this module (which is an extension module implemented in C). Do not edit Modules/Setup (it is out of date). You may have to install Tcl and Tk (when using RPM, install the -devel RPMs as well) and/or edit the setup.py script to point to the right locations where Tcl/Tk is installed. If you install Tcl/Tk in the default locations, simply rerunning "make" should build the _tkinter extension.

+0

आप setup.py स्क्रिप्ट को कैसे संपादित करते हैं? आप फिर से कैसे बनाते हैं? मैं इसे मैक पर करने की कोशिश कर रहा हूं और मुझे लगता है कि मुझे सिर्फ मैक वापस करना चाहिए और विंडोज़ मशीन मिलनी चाहिए। –

+2

मेरे मामले में यह 'tk' के अपग्रेड के कारण हुआ था। इसका उपयोग केवल 'matplotlib' द्वारा किया गया था, और इसे सर्कसविगेट किया जा सकता है: http://stackoverflow.com/a/4935945/1959808 –

+0

setup.py python – dasons

36

पायथन बनाने से पहले tk-devel (या एक समान नामित पैकेज) स्थापित करें।

+18

उबंटू रन 'सुडो एपीटी-गेट पर tk-dev 'स्थापित करें, और उसके बाद – pycoder112358

+0

@ pycoder112358 को पुन: चलाएं: मैंने ऐसा किया लेकिन यह अभी भी मुझे बता रहा है कि' आयात त्रुटि: जब मैं tkinter आयात करने का प्रयास करता हूं तो _tkinter नामक कोई मॉड्यूल नहीं। मैं यूबंटू 13.10 पर स्रोत से संकलित पायथन 3.4.0 का उपयोग करता हूं। – ARF

+5

'tk-devel' क्या है? आपको कम से कम एक न्यूनतम स्पष्टीकरण देना चाहिए कि इस मामले में यह क्यों उपयोगी होना चाहिए। – nbro

3

अजगर 2.7 के साथ फेडोरा पर एक ही मुद्दा था। पता चला है कुछ अतिरिक्त संकुल की आवश्यकता है:

sudo dnf install tk-devel tkinter 

संकुल स्थापित करने के बाद, इस hello-world उदाहरण पायथन 2.7 पर ठीक काम कर रहा है:

$ cat hello.py 
from Tkinter import * 
root = Tk() 
w = Label(root, text="Hello, world!") 
w.pack() 
root.mainloop() 
$ python --version 
Python 2.7.8 
$ python hello.py 

और X11 अग्रेषण के माध्यम से, यह इस तरह दिखता है:

Hello World through X11

ध्यान दें कि अजगर 3 में, मॉड्यूल का नाम लोअरकेस है, और अन्य संकुल समर्थक हैं bably आवश्यक ...

from tkinter import * 
+0

sudo: स्रोत जानकारी में स्रोत कोड निर्देशिका में स्थित है: dnf: कमांड नहीं मिला (मैं उबंटू हूं, क्या यह अंतर है?) – mjp

33

आर्क/Manjaro के तहत सिर्फ पैकेज tk स्थापित:

sudo pacman -S tk 
+0

बिल्कुल सही! मुझे मांजरो में जो त्रुटि मिलती है और यह तय है: 'ImportError: libtk8.6.so: साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं। – DJSquared

0

मुझे लगता है कि यह करने के लिए सबसे पूरा जवाब स्वीकार किए जाते हैं जवाब यहाँ पाया जाता है:

How to get tkinter working with Ubuntu's default Python 2.7 install?

I figured it out after way too much time spent on this problem, so hopefully I can save someone else the hassle.

I found this old bug report deemed invalid that mentioned the exact problem I was having, I had Tkinter.py, but it couldn't find the module _tkinter: http://bugs.python.org/issue8555

I installed the tk-dev package with apt-get, and rebuilt Python using ./configure, make, and make install in the Python2.7.3 directory. And now my Python2.7 can import Tkinter, yay!

I'm a little miffed that the tk-dev package isn't mentioned at all in the Python installation documentation.... below is another helpful resource on missing modules in Python if, like me, someone should discover they are missing more than _tkinter.

-1

यह लक्षण तब भी हो सकता है जब बाद में ver पायथन (2.7.13, उदाहरण के लिए) के शेर को रिलीज पायथन संस्करण के साथ/usr/local/bin "में स्थापित किया गया है, और फिर बाद में ऑपरेटिंग सिस्टम अपग्रेड (कहें, उबंटू 12.04 -> उबंटू 14.04) विफल रहता है वहां अद्यतन पायथन हटा दें।

कि imcompatibility, एक जरूरी ठीक करने के लिए

क)/usr/स्थानीय/बिन में अजगर के अद्यतन संस्करण को हटा दें;

बी) अनइंस्टॉल पायथन-निष्क्रिय 2.7; और

सी) पायथन-निष्क्रिय 2.7 को पुनर्स्थापित करें।

1

ओह मैंने अभी समाधान का पालन किया है Ignacio Vazquez-Abrams ने सुझाव दिया है कि पाइथन बनाने से पहले टीके-देव स्थापित करें। (उबंटू 16.04 पर स्रोत से पायथन-3.6.1 का निर्माण।)

कल पूर्व निर्मित संकलित वस्तुओं और बाइनरी थीं, हालांकि मैंने वस्तुओं को साफ नहीं किया और बस उसी पर फिर से निर्माण किया रास्ता बनाना और यह खूबसूरती से काम करता है।

sudo apt install tk-dev 
(On the python build path) 
(No need to conduct 'make clean') 
./configure 
make 
sudo make install 

यही है!

$ pyenv install 3.6.2 

तब मैं tkinter आयात कर सकते हैं:

$ sudo apt-get install python-tk python3-tk tk-dev 

तो अजगर के संस्करण मैं चाहता था स्थापित:

0

इस उबंटू 16.04 पर pyenv के साथ काम करने के लिए, मैं करने के लिए किया था बस ठीक है:

import tkinter 
0

मुझे इस मुद्दे को अजगर 2.7.9 पर सामना करना पड़ता है। इसे ठीक करने, मैं टी और tcl स्थापित करें, और उसके अजगर कोड के पुनर्निर्माण और पुनः स्थापित है, और कॉन्फ़िगर दौरान, मैं टी और स्पष्ट रूप से tcl के लिए पथ एक पूरे लेख निर्धारित करते हैं,

./configure --with-tcltk-includes="-I/usr/include" --with-tcltk-libs="-L/usr/lib64 -ltcl8.5 -L/usr/lib64 -ltk8.5"

भी द्वारा, अजगर प्रक्रिया स्थापित करने के लिए : Building Python from Source