1、错误:No module named '_tkinter'
如果在使用类似 matplotlib 库时遇到如下错误:
import tkinter
File "/usr/local/lib/python3.6/tkinter/__init__.py", line 36, in
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
1
2
3
4importtkinter
File"/usr/local/lib/python3.6/tkinter/__init__.py",line36,in
import_tkinter# If this fails your Python may not be configured for Tk
ModuleNotFoundError:Nomodulenamed'_tkinter'
因为事实上 tkinter 并不是一个第三方库,而是 Python 的内置接口类,并不能使用 pip3 来进行安装。
可尝试使用以下方法解决:
1)安装 python-tk 和 tk-dev 库:
Shell
sudo apt install python3-tk
sudo apt install tk-dev
1
2sudoaptinstallpython3-tk
sudoaptinstalltk-dev
2)重新编译 Python 3.6.5:
进入 Python 3.6.5 源码目录,运行如下命令:
Shell
make clean
./configure
make -j8
sudo make install
1
2
3
4makeclean
./configure
make-j8
sudomakeinstall
3)如果正确安装则可以运行:
Shell
import tkinter
1importtkinter
2、错误:ModuleNotFoundError: No module named 'pandas'
在安装 Python 3.6 以后可能会遇到如下问题:
Traceback (most recent call last):
File "dataset.py", line 4, in
import pandas as pd
ModuleNotFoundError: No module named 'pandas'
1
2
3
4Traceback(mostrecentcalllast):
File"dataset.py",line4,in
importpandasaspd
ModuleNotFoundError:Nomodulenamed'pandas'
通常情况下只需要运行:
Shell
pip3 install wheel
pip3 install pandas
1
2pip3installwheel
pip3installpandas
不过在 Python 3.6 时,如果你之前装了其他版本比如 3.5 版本的 Python,可能运行后直接安装到 Python 3.5 的目录下,3.6 仍然没有安装。这时可以使用以下命令安装在指定版本上:
Shell
sudo python3.6 -m pip install pandas
1sudopython3.6-mpipinstallpandas
3、错误:_tkinter.TclError: couldn't connect to display "localhost:11.0"
如果在使用 SSH 远端调用 matlibplot 等显示界面时遇到如下错误:
File "/usr/local/lib/python3.5/site-packages/matplotlib/backends/_backend_tk.py", line 1046, in new_figure_manager_given_figure
window = Tk.Tk(className="matplotlib")
File "/usr/lib/python3.5/tkinter/__init__.py", line 1871, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display "localhost:11.0"
1
2
3
4
5File"/usr/local/lib/python3.5/site-packages/matplotlib/backends/_backend_tk.py",line1046,innew_figure_manager_given_figure
window=Tk.Tk(className="matplotlib")
File"/usr/lib/python3.5/tkinter/__init__.py",line1871,in__init__
self.tk=_tkinter.create(screenName,baseName,className,interactive,wantobjects,useTk,sync,use)
_tkinter.TclError:couldn'tconnecttodisplay"localhost:11.0"
可能有几个问题,请检查:
1)SSH 连接方式,请使用 -X 参数:
ssh -X user@webserver.com
2)MacOS 请安装 XQuartz 后重启再尝试(参见[2])。
4、子目录 import 根目录路径
如果你的在子目录有一个 python 脚本,类似 tests/test.py 希望 import 根目录的 load_data.py ,一个可行的方法就是在 test.py 文件头部加入:
Python
import sys
sys.path.append('./')
1
2importsys
sys.path.append('./')
然后正常 import 方式类似:
Python
from load_data import SparseDataset
1fromload_dataimportSparseDataset
运行时在根目录运行:
Shell
python tests/test.py
1pythontests/test.py
参考文献
[1] https://blog.csdn.net/blueheart20/article/details/78763208
[2] https://wikis.nyu.edu/display/ADRC/Enable+X11+Forwarding+on+Mac+OS+X
Original content here is published under these license terms:X
License Type:Read Only
License Abstract:You may read the original content in the context in which it is published (at this web address). No other copying or use is permitted without written agreement from the author.