I am new to Python Programming.
I am using tkinter module to import stuff for graphical user interface.
I import everything from the tkinter module by typing the following statement:
from tkinter import *
Why do I still need to import some certain classes separately from the same module like simpledialog although we have imported everything using the above statement from tkinter?
from tkinter import simpledialog
Without importing simpledialog separately, it throws an error.
Yes, it does throw the error because simpledialog is not directly the module of tkinter.
Basically, the module is every file, which has the file extension .py and consists of proper Python code. There is no special syntax required to make such a file a module. A module can contain arbitrary objects, for example files, classes or attributes. All those objects can be accessed after an import.
If you will do dir(tkinter) without importing the simpledialog explicitly, it shows the results except simpledialog in it.
This is because of the library structure. It doesn't import all the modules of tkinter automatically. Once you use import tkinter.simpledialog it will show you the simpledialog module in it, which means simpledialog was never imported from tkinter earlier.
Also, it is recommended to use import tkinter instead of from tkinter import astrik, except when working in the interactive Python shell. One reason is that the origin of a name can be quite obscure, because it can't be seen from which module it might have been imported.
Related
So I wanted to use the python package turtle, which uses the underlying package tkinter.
With this code:
import turtle
python raised an error which said, that the package tkinter was not found.
So I edited the turtle.py file and changed the
from tkinter import xyz
to
from tk import xyz
and at least the error was gone, but another appeared.
It is now saying
ImportError: cannot import name 'simpledialog' from 'tk' (C:\PYTHON\lib\site-packages\tk\__init__.py)
I've updated pip and reinstalled both packages.
I'm using python 3.9.1 on Windows.
Try using:
from tkinter.simpledialog import askstring
Or whichever type of simpledialog you want to make
Feel free to ask question in case of confusion.
I'm working on creating an interface between tkinter and JSON. I need to look through the code of Tkapp to do so because I need to understand its attributes. Failing that, how can I import it?
from tkinter import _tkinter
from _tkinter import tkapp
Returns an ImportError
_tkinter is a C-based module. tkapp is defined in its source code which you can find here on GitHub.
I don't understand how this happened. myscript.py works, Tkinter is installed. However once I converted it to .exe using pyinstaller, I ran myscript.exe, I got a message in command prompt saying "No module named Tkinter".
How can I fix this?
I've already tried to convert it several times, tried using --noupx, and also tried reinstalling pyinstaller. Thanks
PyInstaller - Hidden Imports
Try using the --hiddenimport flag. Do --hiddenimport=Tkinter, or replace the Tkinter with whatever module you need. The issue seems reoccurring throughout the PyInstaller community. Here is one article.
Name Space
Tkinter has changed its namespaces from Python 2 to Python 3. It's now named tkinter in Python 3 and Tkinter in Python 2. This is the code I like to use so it's cross-version.
try:
import Tkinter as tk
except ImportError:
import tkinter as tk
Then you can reference Tkinter as tk. Or if you do from Tkinter import * you can just use everything without a namespace. See the list here for more of the name changes between version.
Getting a simple file dialog in abaqus seems pretty difficult, so i wanted to use tkinter. It seems tkinter come with abaqus, but when i try to import the module it says:
File "/opt/Abaqus/6.12-1/tools/SMApy/lib/python2.6/lib-tk/Tkinter.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
importing _tkinter is also not working. so how can one get tkinter to work in abaqus?
Greetings,
I'm new to PythonAnywhere, and when I try to import tkinter using Flask putting from tkinter import *
after the line from flask import Flask, it shows an error saying: "'from tkinter import *' used; unable to detect undefined names".
How do I have to import tkinter, then?
Your code editor is automatically running a linter like flake8 or pyflakes, and it is this linter that tells you that it cannot detect common coding errors because you are using a from <modulename> import * statement. That's because a linter cannot know up front what names that statement will import.
In other words, this is not a Python error. Nor is it specific to PythonAnywhere.
You can avoid the message by importing only what you are actually using in your code:
from tkinter import Frame, StringVar, Label