Python 如何指示要导入PyInstaller的特定模块?

Python 如何指示要导入PyInstaller的特定模块?,python,pyinstaller,Python,Pyinstaller,我正在尝试使用PyInstaller创建一个应用程序,如果我将python库源中的plotly文件夹复制并粘贴到我的应用程序所在的文件夹中,它就会工作。但是,如果我不这样做,程序就不能工作 我已经尝试过使用隐藏导入,如下所示,在我的.spec文件中 # -*- mode: python ; coding: utf-8 -*- import sys sys.setrecursionlimit(5000) block_cipher = None options = [] a = Analy

我正在尝试使用PyInstaller创建一个应用程序,如果我将python库源中的
plotly
文件夹复制并粘贴到我的应用程序所在的文件夹中,它就会工作。但是,如果我不这样做,程序就不能工作

我已经尝试过使用隐藏导入,如下所示,在我的
.spec
文件中

# -*- mode: python ; coding: utf-8 -*-

import sys
sys.setrecursionlimit(5000)

block_cipher = None

options = []


a = Analysis(['application.py'],
             pathex=['C:\\path_to_application', \
             'C:\\path_to_python_libs'],
             binaries=[],
             datas=[ ('logo.png', '.') ],
             hiddenimports=['plotly.offline', 'plotly.graph_objs', 'datetime', 'time'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          options,
          [],
          exclude_binaries=True,
          name='application',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=False,
          console=True)
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=False,
               upx_exclude=[],
               name='application')

我收到以下错误(因为尚未创建plotly文件夹):

回溯(最近一次呼叫最后一次):
文件“振动分析.py”,第255行,在
文件“瀑布图FFT2.py”,第249行,瀑布图
文件“site packages\plotly\offline\offline.py”,第558行,在plot中
文件“site packages\plotly\io\\u html.py”,第482行,以书面形式
文件“site packages\plotly\io\\ u html.py”,第279行,在to\ u html中
get_plotlyjs中第87行的文件“site packages\plotly\offline\offline.py”
get_数据中第637行的文件“pkgutil.py”
文件“c:\users\bergon julien\anaconda3\lib\site packages\PyInstaller\loader\py
imod03_importers.py”,第475行,在get_数据中
打开(路径“rb”)作为fp:
FileNotFoundError:[Errno 2]没有这样的文件或目录:“C:\\path\u to\u application\\plotly\\package\u data\\plotly.min.js”

您可以将应用程序依赖项添加为带有标志的数据文件。另外,如果您想添加整个目录,可以使用类。因此,编辑等级库文件并为
绘图添加
类:

# -*- mode: python ; coding: utf-8 -*-

import sys
sys.setrecursionlimit(5000)

block_cipher = None

options = []


a = Analysis(['application.py'],
            ...
             noarchive=False)
a.datas += Tree('<path_to_ploty_dir>', prefix='./ploty')
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
...
#-*-模式:python;编码:utf-8-*-
导入系统
系统设置递归限制(5000)
分组密码=无
选项=[]
a=分析(['application.py'],
...
无存档=假)
a、 数据+=树('',前缀='./绘图')
pyz=pyz(a.pure,a.zipped_数据,
密码=分组密码)
...
并使用
pyinstaller application.spec
生成可执行文件

# -*- mode: python ; coding: utf-8 -*-

import sys
sys.setrecursionlimit(5000)

block_cipher = None

options = []


a = Analysis(['application.py'],
            ...
             noarchive=False)
a.datas += Tree('<path_to_ploty_dir>', prefix='./ploty')
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
...