在python中创建多平台安装程序
我的python项目在许多文件中有许多脚本。总体结构是 : 我有很多这样的进口货在python中创建多平台安装程序,python,Python,我的python项目在许多文件中有许多脚本。总体结构是 : 我有很多这样的进口货 import bin.project.mainApp.MainAppFrame 我的setup.py文件是 from setuptools import setup, find_packages setup( name = 'Application to orifices', version = '1.0', author = "Michał Walkowiak", author_email = "michal
import bin.project.mainApp.MainAppFrame
我的setup.py文件是
from setuptools import setup, find_packages
setup(
name = 'Application to orifices',
version = '1.0',
author = "Michał Walkowiak",
author_email = "michal.walkowiak93@gmail.com",
description = "Application in python 3.4 with noSQL BerkleyDB",
packages = find_packages(),
entry_points={
'console_scripts': [
'PracaInzynierska = bin.project.mainApp.MainApp:__init__'
]
},
scripts = [
'bin/project/mainApp/__init__.py',
'bin/project/mainApp/MainApp.py',
'bin/project/mainApp/MainAppFrame.py',
'bin/project/informations/__init__.py',
'bin/project/informations/DisplayInformations.py',
'bin/project/informations/InformationsFrame.py',
'bin/project/calculations/Calculate.py',
'bin/project/calculations/UnitConversion.py',
'bin/project/databaseHandler/__init__.py',
'bin/project/databaseHandler/databaseHandler.py',
'bin/project/databaseMonitoring/__init__.py',
'bin/project/databaseMonitoring/DatabaseFrame.py',
'bin/project/databaseMonitoring/DisplayDatabase.py',
'bin/project/initializeGUI/__init__.py',
'bin/project/initializeGUI/CalculationsFrame.py',
'bin/project/initializeGUI/initGui.py',
'bin/project/interpolation/__init__.py',
'bin/project/interpolation/Interpolate.py',
'bin/project/orificeMethods/__init__.py',
'bin/project/orificeMethods/methodsToCountOrifice.py',
'bin/project/steamMethods/__init__.py',
'bin/project/steamMethods/methodToCountParamsSteam.py',
'bin/project/waterMethods/__init__.py',
'bin/project/waterMethods/methodsToCountParamsWater.py'
]
)
我将setup.py与
python3 setup.py bdist --formats=gztar
它是带有tar.gz文件的generatedist文件夹,但当我解压缩它时,每个脚本都在/bin文件夹中。当我尝试通过运行MainApp.py时
python3 MainApp.py
我收到一个错误:
Traceback (most recent call last):
File "MainApp.py", line 7, in <module>
import bin.project.mainApp.MainAppFrame
ImportError: No module named 'bin'
到
它可以工作,但在Pycharm中不起作用,因为在Pycharm中,每个文件都有路径。
是否可以选择生成istaller,解包后它将与原始项目具有相同的路径,或者它总是将所有文件添加到一个文件夹?以下是我使用的一个简单GUI(tkinter)程序解决方案:
- Windows:复制Python文件夹并创建一个可移植版本,然后通过创建快捷方式启动程序,即
。使用Nullsoft Installer创建安装文件,该文件将负责Windows系统上的链接、目录和卸载步骤Python.exe../foo/start.py
- Linux:分发代码,指定依赖项,创建为可执行文件创建链接的脚本。当然,您可以浏览有关如何创建自己的软件包(即Debian软件包)的信息
- 所有其他:与Linux类似
这是Python的优点之一。很抱歉,对我来说,它有点太笼统了。我在linux上工作,正如您所看到的,我已经尝试过像您所说的那样做,问题是在“python3 setup.py bdist--formats=gztar”之后保留脚本的路径。另外,如果有必要的话,我使用QtDesigner来构建GUI
Traceback (most recent call last):
File "MainApp.py", line 7, in <module>
import bin.project.mainApp.MainAppFrame
ImportError: No module named 'bin'
import bin.project.mainApp.MainAppFrame
import MainAppFrame