首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用pyvis网络的pyinstaller

不使用pyvis网络的pyinstaller
EN

Stack Overflow用户
提问于 2022-05-10 19:59:56
回答 1查看 370关注 0票数 1

我正在尝试使用Pyinstaller在Python中测试pyvis库的打包到一个可用的应用程序中。但是,我想在一个虚拟环境中完成这个任务。在创建虚拟环境并安装pyvis和所需的库之后,我已经运行pyinstaller来创建应用程序的目录。下面是我要测试其打包的示例python脚本:

代码语言:javascript
复制
from pyvis.network import Network
import pandas as pd

got_net = Network(height='750px', width='100%', bgcolor='#222222', font_color='white')

# set the physics layout of the network
got_net.barnes_hut()
got_data = pd.read_csv('https://www.macalester.edu/~abeverid/data/stormofswords.csv')

sources = got_data['Source']
targets = got_data['Target']
weights = got_data['Weight']

edge_data = zip(sources, targets, weights)

for e in edge_data:
    src = e[0]
    dst = e[1]
    w = e[2]

    got_net.add_node(src, src, title=src)
    got_net.add_node(dst, dst, title=dst)
    got_net.add_edge(src, dst, value=w)

neighbor_map = got_net.get_adj_list()

# add neighbor data to node hover data
for node in got_net.nodes:
    node['title'] += ' Neighbors:<br>' + '<br>'.join(neighbor_map[node['id']])
    node['value'] = len(neighbor_map[node['id']])

got_net.show('gameofthrones.html')

我在Anaconda提示符中使用了以下命令来构建虚拟环境和应用程序:

代码语言:javascript
复制
virtualenv venv
venv\Scripts\activate.bat
pip install pandas pyvis pyinstaller
pyinstaller -D -w samplepyvis.py

在创建的目录中运行samplepyvis.exe时,我会得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "samplepyvis.py", line 9, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "pandas\__init__.py", line 22, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "pandas\compat\__init__.py", line 14, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "pandas\_typing.py", line 78, in <module>
AttributeError: module 'numpy' has no attribute 'ndarray'

我也尝试过在没有虚拟环境的情况下创建应用程序。但是,即使在这种情况下,我也会得到一个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "samplepyvis.py", line 39, in <module>
  File "pyvis\network.py", line 495, in show
  File "pyvis\network.py", line 476, in write_html
  File "pyvis\network.py", line 434, in generate_html
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\Python Workspace\\pyvis1\\dist\\samplepyvis\\pyvis/templates/template.html'

有人能帮我解决这个问题吗?虽然在Spyder中运行的脚本似乎产生了正确的结果,但是使用Pyinstaller将其打包到应用程序中并不会产生正确的结果。

如有任何帮助,我们将不胜感激:)

EN

回答 1

Stack Overflow用户

发布于 2022-06-20 12:59:38

运行安装程序,将模块文件收集到可执行文件中,如下所示:

代码语言:javascript
复制
pyinstaller -D -w --collect-all pyvis ./samplepyvis.py

这将导致模块的模板与可执行文件捆绑在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72192316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档