首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter,cx_freeze和PyCharm

Tkinter,cx_freeze和PyCharm
EN

Stack Overflow用户
提问于 2021-06-24 17:43:59
回答 1查看 373关注 0票数 0

I°)应用程序描述

我用python3制作了一个程序。这是一个在sql中使用数据库的程序。我使用logiciel魅力社区来做应用程序。我用python中的命令创建了一个speciale文件夹,并在一个文件夹command中使用sql中的所有序列,每个GI (图形界面)都是一个类,每个GI都有自己的文件。我使用以下软件包:

  • ttkwidgets
  • reportlab
  • sqlite3
  • tkinter
  • Cx_freeze

(II°)问题

我使用cx_freeze冻结我的程序。您可以在本段之后看到设置。我的问题是什么?当我冻结程序并运行它(就在冻结之后),我收到了很多警告信息,告诉我:

  • ModuleNotFoundError :没有名为'tkinter'
  • ModuleNotFoundError的模块:没有名为'ttkwidgets'
  • ModuleNotFoundError的模块:没有名为'PIL'
  • ModuleNotFoundError的模块:没有名为'reportlab'
  • ModuleNotFoundError的模块:没有名为'Communicationddb'

的模块

我能解决这个问题。我把文件夹复制到tkinter,ttkwidget中.在lib文件夹中。我可以解决问题和应用程序的工作,但我想了解如何解决它。

在这里,可以工作的设置(当我说它工作,我需要手动添加文件夹)

代码语言:javascript
复制
import sys
from cx_Freeze import setup, Executable

base = None
if sys.platform == 'win32':
    base = 'Win32GUI'
    icone = "icone_ip.ico"

options = {
    'build_exe': {
        'includes': ['atexit','reportlab','Communicationbdd']
    }
}

executables = [
    Executable('BouclePrincipale.py', base="Win32GUI",icon=icone)
]

setup(name='ALCOIP',
      version='1.3',
      author="Dr MARCUCCI Charles",
      description='Outil de saisir des IP',
      executables=executables
      )

我尝试另一种代码来安装这个

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Python 3

"""
Icone sous Windows: il faut:
=> un xxx.ico pour integration dans le exe, avec "icon=xxx.ico"
=> un xxx.png pour integration avec PyQt4 + demander la recopie avec includefiles.
"""

import sys, os
from cx_Freeze import setup, Executable

#############################################################################
# preparation des options

# chemins de recherche des modules
# ajouter d'autres chemins (absolus) si necessaire: sys.path + ["chemin1", "chemin2"]
path = sys.path

# options d'inclusion/exclusion des modules
includes = ['atexit','reportlab','Communicationbdd']  # nommer les modules non trouves par cx_freeze
excludes = []
packages = []  # nommer les packages utilises

# copier les fichiers non-Python et/ou repertoires et leur contenu:
includefiles = []

if sys.platform == "win32":
    base = 'Win32GUI'
    # includefiles += [...] : ajouter les recopies specifiques à Windows
elif sys.platform == "linux2":
    pass
    # includefiles += [...] : ajouter les recopies specifiques à Linux
else:
    pass
    # includefiles += [...] : cas du Mac OSX non traite ici

# pour que les bibliotheques binaires de /usr/lib soient recopiees aussi sous Linux
binpathincludes = []
if sys.platform == "linux2":
    binpathincludes += ["/usr/lib"]

# niveau d'optimisation pour la compilation en bytecodes
optimize = 0

# si True, n'affiche que les warning et les erreurs pendant le traitement cx_freeze
silent = True

# construction du dictionnaire des options
options = {
           "includes": includes,
           "excludes": excludes,
           "packages": packages,
           "include_files": includefiles
           }

# pour inclure sous Windows les dll system de Windows necessaires
if sys.platform == "win32":
    options["include_msvcr"] = True

#############################################################################
# preparation des cibles
base = None
if sys.platform == "win32":
    base = "Win32GUI"  # pour application graphique sous Windows
    # base = "Console" # pour application en console sous Windows

icone = None
if sys.platform == "win32":
    icone = "icone_ip.ico"

cible_1 = Executable(
    Executable('BouclePrincipale.py', base="Win32GUI",icon=icone)
)


#############################################################################
# creation du setup
setup(
    name="ALCOIp",
    version="1.00",
    description="Permet la saisi des IP",
    author="Dr MARCUCCI Charles",
    options={"build_exe": options},
    executables=[cible_1]
)

我有以下错误消息:p = os.fspath(p) Typeerror :预期的str、字节或os.PathLike对象,而不是可执行的

我认为这是与py魅力和PyCharm如何工作的链接。我试着重新安置

代码语言:javascript
复制
includes = ['atexit','reportlab','Communicationbdd']

通过

代码语言:javascript
复制
includes = ['atexit','venv/Lib/site-packages/reportlab','Communicationbdd']

但是当我冻结应用程序无法运行时,我有一个错误ModuleNotFoundError :没有名为“reportlab”的模块

(III°)问题

如何处理这个错误?我需要改变集成开发环境吗?

谢谢你未来的回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-25 06:16:40

我找到了答案..。当我添加一个包时,它只在PyCharm上.我使用pip在python上安装,而不只是在PyCharm上安装。我又吃午饭了,我的身材很有魅力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68120479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档