我需要把我的烧瓶项目转换成.exe
这是一个小项目,打算在本地浏览器(脱机)上运行。
当我运行exe脚本时,它会告诉我没有导入烧瓶。这不是真的,因为它工作时直接从main.py发射。似乎pyinstaller跳过了一些lib。我能做什么?
main.py
from app import create_app
if __name__ == "__main__":
app = create_app()
app.run()
app/init.py
from flask import Flask
SECRET_KEY = ""
UPLOAD_FOLDER = ""
MAX_SIZE = 500000
def create_app():
app = Flask(__name__)
app.config["SECRET_KEY"] = SECRET_KEY
app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER
app.config['MAX_CONTENT_PATH'] = MAX_SIZE
from .views import views
app.register_blueprint(views, url_prefix="/")
return app
命令打包pyinstaller -F main.py
main.exe错误
Traceback (most recent call last):
File "main.py", line 1, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "app\__init__.py", line 1, in <module>
ModuleNotFoundError: No module named 'flask'
[32112] Failed to execute script 'main' due to unhandled exception!
发布于 2022-07-15 06:51:04
运行pip显示pip,您将需要-p来指向pip libs示例。
PS D:\GitHub\ShittyChatApp> pip show pip
Name: pip
Version: 22.1.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: c:\users\jack\appdata\local\programs\python\python310\lib\site-packages
Requires:
Required-by: pipenv
或
pyinstaller -p c:\users\jack\appdata\local\programs\python\python310\lib\site-packages \
-p myapp \
--add-data="myapp/templates;templates" \
--add-data="myapp/static;static" \
--hidden-import=dns.versioned \
--hidden-import=dns.tsigkeyring \
--hidden-import=dns.namedict \
--hidden-import=dns.e164 \
--hidden-import=dns \
--hidden-import=dns.asyncresolver \
--hidden-import=dns.asyncquery \
--hidden-import=dns.asyncbackend \
--hidden-import=eventlet.hubs.epolls \
--hidden-import=eventlet.hubs.kqueue \
--hidden-import=eventlet.hubs.selects -F main.py --onefile
这就是我的make文件的样子,我正在将它用于windows和linux。
PIP_LIBS=c:\users\jack\appdata\local\programs\python\python310\lib\site-packages
all: install_deps clean build
install_deps:
pip install -r requirements.txt
build:
pyinstaller -p c:\users\jack\appdata\local\programs\python\python310\lib\site-packages \
-p myapp \
--add-data="myapp/templates;templates" \
--add-data="myapp/static;static" \
--hidden-import=dns.versioned \
--hidden-import=dns.tsigkeyring \
--hidden-import=dns.namedict \
--hidden-import=dns.e164 \
--hidden-import=dns \
--hidden-import=dns.asyncresolver \
--hidden-import=dns.asyncquery \
--hidden-import=dns.asyncbackend \
--hidden-import=eventlet.hubs.epolls \
--hidden-import=eventlet.hubs.kqueue \
--hidden-import=eventlet.hubs.selects -F main.py --onefile
rm -rf build
run_server:
./dist/main
clean:
rm -rf build
rm -rf dist
https://stackoverflow.com/questions/70643470
复制相似问题