gpt4 book ai didi

python-2.7 - Pyqt4-pyqtgraph 应用程序递归地打开自己的新实例

转载 作者:行者123 更新时间:2023-12-02 11:30:20 27 4
gpt4 key购买 nike

我 fork 了 BMDanalyse用于我的项目并对其进行了修改。

安装说明,以防您需要帮助。实际问题如下。

由于内存要求,需要 64 位系统。请确保您有 64bit Python 2.7 .

以下设置说明适用于 Pycharm在 Windows 或 Ubuntu 上,尽管您希望它在 Windows 上运行,因为我的问题是关于制作 .exe:

需要以下软件包。不要忘记选择 64 位的。在提供链接的情况下,您将不能简单地通过 Pycharm 安装软件包。

  • numpy
  • pyqtgraph
  • matplotlib
  • PyQt4
  • pillow
  • scipy
  • 参数

  • 打开后 BMDanalyse project然后你应该可以运行 SPCanalyse.py让应用程序运行。它有错误并且是一个非常早期的原型(prototype)。下载以下 example data以确保它按预期工作。

    如果您按顺序执行以下操作,则应该可以。您当然可以检查 IDE 的控制台以了解应用程序正在执行的操作(尚未添加进度条)
  • 单击文件,加载图像,加载两个图像。单击“对齐”。在应用程序完成它的事情后,一个名为 aligned.raw 的文件应该出现在您的下载文件夹中
  • 加载 alignment.raw图片。 'alignment.raw' 将出现在右侧的列表中。单击alignment.raw。单击 ROIs,添加 ROIs -> 多边形。绘制两个多边形,如下图所示:
    enter image description here
    获得 ROI 后,单击分析 -> ROI 分析。 ROI.raw应该出现在您的下载文件夹中。
  • 负载 ROI.raw.点击它。单击时间过滤器。过了一会儿 dfoverf0_avg_framesIncl.raw应该出现在您的下载文件夹中
  • 负载 dfoverf0_avg_framesIncl.raw.点击它。屏幕应该变黑。如果它们仍然存在,则删除 ROI。现在点击黑色场景中的随机位置。您看到的是 seed pixel correlation maps

  • 如果所有这 4 个步骤都有效,则该应用程序在您的系统上按预期工作。

    实际问题

    但是,现在它正在运行,我需要一个独立的 .exe 这个应用程序,它可以在没有任何依赖的情况下运行,只是为了向我的主管展示它可以完成。

    如果我使用 python SPCanalyse.py在它运行的项目中的主脚本上,我的应用程序弹出。

    更新:我的笔记本电脑被偷了。但是,在干净的系统上设置所有内容时,我遇到了不同的问题。我能想到的唯一不同的是我没有依赖 Anaconda来自用于包管理的 Continuum 分析。

    如果我使用 pyinstaller SPCanalyse.py在我的主脚本上,我得到一个 .exe,如果我首先运行该 .exe,我会注意到我的图标丢失了。其次,发生这种情况:

    enter image description here

    当我按下对齐按钮(即通过设置中的第 1 步)时,应用程序会卡住(即没有响应),然后反复打开自身的新实例。我假设这与内存有关,因为此操作确实需要大量内存。如果我查看应用程序占用了多少内存(仅查看原始的“无响应”实例),我会发现它每次都达到 1,180.8MB 的水平。考虑到所有其他正在运行的进程,尽管我仍然只使用了 32GB 内存的 28%。我尝试将应用程序的优先级设置为高,但没有效果。我还尝试通过命令提示符打开以查看是否收到任何有用的错误消息。可悲的是没有。

    请注意,第 2-3 步按预期工作!单击黑色场景时,步骤 4 会导致相同的递归自开循环。

    我想我找到了这里发生的事情的解释:
    https://github.com/rdicosmo/parmap

    Of course, if you happen to have open channels, or files, or other connections that should only be used by the parent process, your program may behave in a very wierd way: as an example, do not open a graphic window before calling a Parmap primitive, and do not use this library if your program is multi-threaded!



    因此,我非常确定我使用 parmap 非常非常不正确。如果我通过我的 IDE 运行我,我仍然困惑为什么我的应用程序可以工作!

    Unresolved 老问题,现在是我的小偷的问题

    如果我使用 pyinstaller SPCanalyse.py当我尝试运行生成的 .exe 时,在我的主脚本上有以下输出
    D:\Home\Downloads\BMDanalyse\BMDanalyse>D:\Home\Downloads\BMDanalyse\BMDanalyse\
    dist\SPCanalyse\SPCanalyse.exe
    Traceback (most recent call last):
    File "<string>", line 21, in <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "BMDanalyse\SPCExplorer\filter_jeff.py", line 9, in <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\image_registration\__init__.py", line 1, in <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\image_registration\cross_correlation_shifts.py", line 4, i
    n <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\image_registration\fft_tools\__init__.py", line 3, in <mod
    ule>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\image_registration\fft_tools\correlate2d.py", line 2, in <
    module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\image_registration\fft_tools\convolve_nd.py", line 329, in
    <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\pytest.py", line 21, in <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\_pytest\config.py", line 11, in <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\_pytest\_code\__init__.py", line 2, in <module>
    File "c:\users\cornelis\appdata\local\temp\pip-build-6xhsyv\pyinstaller\PyInst
    aller\loader\pyimod03_importers.py", line 389, in load_module
    File "site-packages\_pytest\_code\code.py", line 8, in <module>
    File "site-packages\py\_apipkg.py", line 125, in __makeattr
    File "site-packages\py\_apipkg.py", line 48, in importobj
    ImportError: No module named _builtin
    SPCanalyse returned -1

    起初我以为我的问题与 No module named builtins有关所以我更新了我的 setup.py 以包含我可以发现我的项目远程依赖的所有可能的包:
    install_requires = [
    'pyinstaller'
    'future'
    'astropy',
    'image_registration',
    'scipy',
    'FITS_tools',
    'pywcs',
    'pyfits',
    'pytest',
    'parmap',
    'setuptools',
    'pyqtgraph',
    'matplotlib',
    'numpy',
    'PIL',
    'SPCExplorer',
    ],

    我也试过 python setup.py build我得到:
    D:\Home\Downloads\BMDanalyse>python setup.py build
    running build
    running build_py
    creating build
    creating build\lib
    creating build\lib\BMDanalyse
    copying BMDanalyse\customItems.py -> build\lib\BMDanalyse
    copying BMDanalyse\matplotlib_fix.py -> build\lib\BMDanalyse
    copying BMDanalyse\ordereddict.py -> build\lib\BMDanalyse
    copying BMDanalyse\ROI.py -> build\lib\BMDanalyse
    copying BMDanalyse\SidePanel.py -> build\lib\BMDanalyse
    copying BMDanalyse\SPCanalyse.py -> build\lib\BMDanalyse
    copying BMDanalyse\version.py -> build\lib\BMDanalyse
    copying BMDanalyse\ViewBoxCustom.py -> build\lib\BMDanalyse
    copying BMDanalyse\__init__.py -> build\lib\BMDanalyse
    creating build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\arrow-down-2.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\arrow-left.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\arrow-right.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\arrow-up-2.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\filesave.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\file_add.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\file_copy.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\file_delete2.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\green-add3.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\logo.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\opened-folder.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\polygonIcon.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\README.txt -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\rectangularIcon.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\icons\red_delete.png -> build\lib\BMDanalyse\icons
    copying BMDanalyse\changeLog.txt -> build\lib\BMDanalyse
    creating build\lib\BMDanalyse\sampleMedicalImages
    creating build\lib\BMDanalyse\sampleMedicalImages\Implant
    creating build\lib\BMDanalyse\sampleMedicalImages\Implant\XYplane
    copying BMDanalyse\sampleMedicalImages\Implant\XYplane\vxray_XY_1.png -> build\l
    ib\BMDanalyse\sampleMedicalImages\Implant\XYplane
    copying BMDanalyse\sampleMedicalImages\Implant\XYplane\vxray_XY_11.png -> build\
    lib\BMDanalyse\sampleMedicalImages\Implant\XYplane
    copying BMDanalyse\sampleMedicalImages\Implant\XYplane\vxray_XY_21.png -> build\
    lib\BMDanalyse\sampleMedicalImages\Implant\XYplane
    copying BMDanalyse\sampleMedicalImages\Implant\XYplane\vxray_XY_31.png -> build\
    lib\BMDanalyse\sampleMedicalImages\Implant\XYplane
    copying BMDanalyse\sampleMedicalImages\Implant\XYplane\vxray_XY_6.png -> build\l
    ib\BMDanalyse\sampleMedicalImages\Implant\XYplane
    creating build\lib\BMDanalyse\sampleMedicalImages\Implant\YZplane
    copying BMDanalyse\sampleMedicalImages\Implant\YZplane\vxray_YZ_1.png -> build\l
    ib\BMDanalyse\sampleMedicalImages\Implant\YZplane
    copying BMDanalyse\sampleMedicalImages\Implant\YZplane\vxray_YZ_11.png -> build\
    lib\BMDanalyse\sampleMedicalImages\Implant\YZplane
    copying BMDanalyse\sampleMedicalImages\Implant\YZplane\vxray_YZ_21.png -> build\
    lib\BMDanalyse\sampleMedicalImages\Implant\YZplane
    copying BMDanalyse\sampleMedicalImages\Implant\YZplane\vxray_YZ_31.png -> build\
    lib\BMDanalyse\sampleMedicalImages\Implant\YZplane
    copying BMDanalyse\sampleMedicalImages\Implant\YZplane\vxray_YZ_6.png -> build\l
    ib\BMDanalyse\sampleMedicalImages\Implant\YZplane
    creating build\lib\BMDanalyse\sampleMedicalImages\No implant
    creating build\lib\BMDanalyse\sampleMedicalImages\No implant\XYplane
    copying BMDanalyse\sampleMedicalImages\No implant\XYplane\noimplant_XY_1.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\XYplane
    copying BMDanalyse\sampleMedicalImages\No implant\XYplane\noimplant_XY_11.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\XYplane
    copying BMDanalyse\sampleMedicalImages\No implant\XYplane\noimplant_XY_21.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\XYplane
    copying BMDanalyse\sampleMedicalImages\No implant\XYplane\noimplant_XY_31.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\XYplane
    copying BMDanalyse\sampleMedicalImages\No implant\XYplane\noimplant_XY_6.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\XYplane
    creating build\lib\BMDanalyse\sampleMedicalImages\No implant\YZplane
    copying BMDanalyse\sampleMedicalImages\No implant\YZplane\noimplant_YZ_1.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\YZplane
    copying BMDanalyse\sampleMedicalImages\No implant\YZplane\noimplant_YZ_11.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\YZplane
    copying BMDanalyse\sampleMedicalImages\No implant\YZplane\noimplant_YZ_21.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\YZplane
    copying BMDanalyse\sampleMedicalImages\No implant\YZplane\noimplant_YZ_31.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\YZplane
    copying BMDanalyse\sampleMedicalImages\No implant\YZplane\noimplant_YZ_6.png ->
    build\lib\BMDanalyse\sampleMedicalImages\No implant\YZplane

    当我去到所有这些都是“ build ”的地方时,我看到一个 folder with scripts absolutely essential我的程序不见了。也许这暗示了是什么导致了我的错误?查看正在运行的图像 build完成(即没有 SPCExplorer 文件夹):

    enter image description here

    不知道是这个还是 setup.py必然与为什么运行 .exe 给我错误有关

    最佳答案

    所以问题确实是由于多处理造成的。但是,如果您在 google 上搜索“multiprocessing pyinstaller”,您可以找到 this

    事实证明

    只需添加 multiprocessing.freeze_support()之后 if __name__=='__main__':在您的主文件中(在我的情况下为 SPCanalyse.py)并添加 import multiprocessing在文件的开头。

    我的程序现在作为独立的 .exe 运行并满足所有四个列出的要求

    关于python-2.7 - Pyqt4-pyqtgraph 应用程序递归地打开自己的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36364509/

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