【问题标题】:cx_Freeze - The appdirs package is requiredcx_Freeze - appdirs 包是必需的
【发布时间】:2017-02-17 11:32:39
【问题描述】:

我正在尝试将 .py 脚本转换为 .exe

cx_Freeze 成功编译 exe。但是,当我运行 exe 文件时,它会引发此错误:

ImportError: 'appdirs' 包是必需的;通常这与此软件包捆绑在一起,因此如果您收到此警告,请咨询您的发行版的包装商

这是我的 setup.py

from cx_Freeze import setup, Executable

setup(
    name = "dbx_sharelink" ,
    version = "0.1" ,
    description = " " ,
    executables = [Executable("dbx_sharelink.py")]  ,
)

源代码 Python 脚本

import sys
import dropbox
import pandas as pd
import sys
import os

dbx = dropbox.Dropbox('xxxxxxxxxxxxxxxxx')

def getSharedLink(full_path):
    try:
        link = dbx.sharing_create_shared_link(full_path).url
    except dropbox.exceptions.ApiError as err:
        print('*** API error', err)
        return None
    return link


print(sys.argv[1])
link = getSharedLink("/A_DATA/data")

df = pd.DataFrame([{'link':link}])
df.to_clipboard(index=False,header=False)


os.system("pause")

如何解决这个错误?

【问题讨论】:

  • 你能分享你试图冻结的 Python 脚本吗?
  • 我现在将源代码添加到我的问题中。

标签: python cx-freeze


【解决方案1】:

我遇到了同样的问题.. 在 setup.py 文件中添加 options 参数,如下所示:

setup (name="MyAPP",
       version="0.1",
       description = "My GUI application!",
       options = {'build_exe': {'packages':packages}},
       .
       .
       .)

在packages put下(packages应该在setup之前):

packages = ['pkg_resources._vendor']

(如果你有类似的问题,你可以添加更多包..)

您可以在此处阅读有关选项的更多信息:http://cx-freeze.readthedocs.io/en/latest/distutils.html#build-exe

这为我解决了问题!


【讨论】:

    【解决方案2】:

    我遇到了同样的问题。 只需将包添加到选项中

    additional_mods = ['appdirs', 'packaging.version']
    additional_packages = ['scipy', 'numpy', 'appdirs', 'packaging']
    
    options = {
            'build_exe': {
                          'packages': additional_packages,
                          'includes': additional_mods,
            }
    

    【讨论】:

      【解决方案3】:

      尝试升级到 setuptools 34.4.1,这对我有用

      【讨论】:

      • 这对我来说不适用于 linux 上的 python 3.6.1,setuptools 不依赖于 appdirs。 cx_freeze 也不会将 appdirs 安装为 pip3 的依赖项。
      猜你喜欢
      • 2015-02-01
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多