gpt4 book ai didi

Python cx_freeze 和 setuptools

转载 作者:行者123 更新时间:2023-12-01 23:36:08 25 4
gpt4 key购买 nike

我想使用 cx_freeze 卡住 python 应用程序,但我也想保留使用 pip 从源代码安装包的可能性。当我尝试在开发模式下安装软件包时(pip install -e .),我收到如下错误。看来 cx_freeze 在后台使用 distutils 而不是 setuptools 。是否可以强制 cx_freeze 也使用 setuptools?

D:\Python\FPF4Creator>pip install -e .
You are using pip version 7.0.3, however version 7.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Obtaining file:///D:/Python/FPF4Creator
Requirement already satisfied (use --upgrade to upgrade): jinja2 in c:\winpython\python-2.7.6\lib\site-packages (from fpf4creator==0.0.2)
Requirement already satisfied (use --upgrade to upgrade): six in c:\winpython\python-2.7.6\lib\site-packages (from fpf4creator==0.0.2)
Requirement already satisfied (use --upgrade to upgrade): markupsafe in c:\winpython\python-2.7.6\lib\site-packages (from jinja2->fpf4creator==0.0.2)
Installing collected packages: fpf4creator
Running setup.py develop for fpf4creator
Complete output from command C:\WinPython\python-2.7.6\python.exe -c "import setuptools, tokenize; __file__='D:\\Python\\FPF4Creator\\setup.py'; e
xec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps:
running develop
Checking .pth file support in C:\Program Files (x86)\fpf4creator\Lib\site-packages\
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

[Error 5] Zugriff verweigert: 'C:\\Program Files (x86)\\fpf4creator'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

C:\Program Files (x86)\fpf4creator\Lib\site-packages\

This directory does not currently exist. Please create it and try again, or
choose a different installation directory (using the -d or --install-dir
option).


----------------------------------------
Command "C:\WinPython\python-2.7.6\python.exe -c "import setuptools, tokenize; __file__='D:\\Python\\FPF4Creator\\setup.py'; exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps" failed with error code 1 in D:\Python\FPF4Creator

setup.py 如下所示:

import os
from setuptools import find_packages
from cx_Freeze import setup, Executable

from fpf4creator import __version__


options = {
'build_exe': {
'include_files': 'fpf4creator/data',
}
}

executables = [
Executable('fpf4creator/gui.py', targetName='FPF4Creator.exe',
icon='fpf4creator/data/gui/icon.ico', base="Win32GUI")
]


fpf4_data = []
for root, dirnames, filenames in os.walk('fpf4creator/data'):
for fname in filenames:
fpf4_data.append(os.path.join(root, fname).replace('fpf4creator/', ''))


setup(
name='fpf4creator',
version=__version__,
author='Author',
author_email='mail@author.com',
packages=find_packages(),
package_data={
'fpf4creator': fpf4_data
},
install_requires=['jinja2', 'six'],
entry_points={
'gui_scripts': [
'fpf4Creator = fpf4creator.gui:main',
],
},
options=options,
executables=executables
)

最佳答案

(发布答案是为了重申@ThomasK 几年前作为评论给出的答案,因为它现在对我有帮助)

您应该为 cx-Freeze 创建一个附加安装文件。该文件的名称可以自由选择,但不应是 setup.py

不幸的是,您可能需要再次指定大多数设置参数。您还可以利用 sys.path contains the main script's directory 的事实来修改一个从 setup.py 检索设置参数的解决方案。 .

================== setup.py ==================

from setuptools import setup, find_packages
setup_arguments = { 'name': 'myapp', 'version': '0.0.0' }
if __name__ == '__main__' :
setup( **setup_arguments )
================ setup_cx.py =================

from setup import setup_arguments
from cx_Freeze import setup
setup( **setup_arguments )

关于Python cx_freeze 和 setuptools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com