簡體   English   中英

python3.6上的tkinter在arch上具有多個版本

[英]tkinter on python3.6 with multiple versions on arch

我正在嘗試測試tensorflow對象檢測。 因為tensorflow需要python3.6並且我的系統默認安裝了python3.7.1,所以我從源代碼構建了python3.6.7。 然后,我使用python3.6.7創建了一個venv並安裝了我的所有依賴項,但是當嘗試導入matplotlib並得到以下錯誤時,我最終遇到了錯誤:

  File "detection.py", line 9, in <module>
    from matplotlib import pyplot as plt
  File "/home/johnmadden/repos/tfobj/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2374, in <module>
    switch_backend(rcParams["backend"])
  File "/home/johnmadden/repos/tfobj/lib/python3.6/site-packages/matplotlib/pyplot.py", line 207, in switch_backend
    backend_mod = importlib.import_module(backend_name)
  File "/home/johnmadden/repos/tfobj/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/johnmadden/repos/tfobj/lib/python3.6/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
    from . import _backend_tk
  File "/home/johnmadden/repos/tfobj/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 5, in <module>
    import tkinter as Tk
  File "/usr/local/lib/python3.6/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

我在網上看了看,發現我需要用

pacman -S tk

而且我仍然遇到相同的錯誤,但是當我轉到python3.7.1時,它成功導入。 我認為它正在嘗試為python3.7.1而不是python3.6.7安裝它。 我知道在ubuntu上人們可以做到

sudo apt-get install python3-tk

如何在拱門上完成?

發現我的問題后,我在安裝tk之前創建了venv,因此它仍然丟失。 我只是重新創建了虛擬環境。

實際的答案是tensorflow不需要python 3.6-Arch Linux提供了一個tensorflow軟件包,該軟件包已打補丁以針對python 3.7構建,您應該改用它。 如果您構建自己的python和tensorflow,則冒着將部分或全部安裝弄亂的風險(在這種情況下,將無法正確設置tkinter)。

您應該始終做的第一件事是檢查所需的軟件是否已在發行版本存儲庫中提供-如果已可用,則該軟件包肯定旨在與那些發行版本存儲庫提供的生態系統一起使用。

在這種情況下,您可以看到tensorflow軟件包具有許多補丁來修復python 3.7上的構建失敗: https ://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages / tensorflow&ID =#ef98a003237250ba0853990da1742ee27c0e554d N37

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM