将我的 python 项目打包成 exe 文件,不需要在客户端安装任何东西
Package my python project into exe file that requires nothing to be installed on customer side
我开发了一个 python 应用程序,它使用以下软件包记录用户在网络上的操作
python==3.7.9
selenium==4.0.0
seleniumbase==2.1.9
Tinkerer==1.7.2
tqdm==4.62.3
validators==0.18.2
我试过很多不同的方法来转换成 exe 文件不需要在客户端安装任何东西
我尝试使用以下
pyvan
它没有用,我向 pkg 的作者提出了一个问题
pyinstaller
当我 运行 我的代码时,它总是告诉我库 SeleniumBase
未知,解决方案是在客户端安装它 这不是一个选项
pipenv
效果不佳
PyOxidizer
& py2exe
也不适合我
I would like to convert that python application into an exe
(I don't care if it is a single file or folder) as long as it requires no installation on the user's side
回购结构
├── requirements.txt
├── main.py
├── logo.ico
├── web_actions_recorder
| ├── main.py
| ├── __init__.py
└── README.md
我找到了 solution/workaround
我的应用程序有这一行,我试图通过以下 python 片段 import os; os.system("sbase mkrec recording.py")
在客户端调用 SeleniumBase,这是不可能的,因为客户没有 seleniumbase
在 his/her PC
上
解决方法如下:
从您的环境 Python 文件夹 C:\Users\<USER_NAME>\AppData\Local\Programs\Python\Python38
复制并将其粘贴到您的项目文件中。
- 文件夹名为 Python38,因为我在我的电脑上使用多个 python 版本,这个文件夹名为 Python38,因为它是 python 版本3.8.10
修改代码如下
import os
# the script was in a folder so I had to do `os.path.dirname(".") first
python_dir_path = os.path.join(os.path.dirname("."), "Python38", "python.exe")
# in that way we will use the python folder with everything installed in
# to help us run the `sbase` command without having to install
# anything on the user's side
os.system(f"{python_path} -m sbase mkrec recording.py")
- 最终使用
PyInstaller v4.7
打包应用程序,以我为例
pyinstaller --clean --onedir --name <your_app_name> --windowed --hidden-import seleniumbase --icon <path_to_icon> main.py
我开发了一个 python 应用程序,它使用以下软件包记录用户在网络上的操作
python==3.7.9
selenium==4.0.0
seleniumbase==2.1.9
Tinkerer==1.7.2
tqdm==4.62.3
validators==0.18.2
我试过很多不同的方法来转换成 exe 文件不需要在客户端安装任何东西 我尝试使用以下
pyvan
它没有用,我向 pkg 的作者提出了一个问题pyinstaller
当我 运行 我的代码时,它总是告诉我库SeleniumBase
未知,解决方案是在客户端安装它 这不是一个选项pipenv
效果不佳PyOxidizer
&py2exe
也不适合我
I would like to convert that python application into an
exe
(I don't care if it is a single file or folder) as long as it requires no installation on the user's side
回购结构
├── requirements.txt
├── main.py
├── logo.ico
├── web_actions_recorder
| ├── main.py
| ├── __init__.py
└── README.md
我找到了 solution/workaround
我的应用程序有这一行,我试图通过以下 python 片段 import os; os.system("sbase mkrec recording.py")
在客户端调用 SeleniumBase,这是不可能的,因为客户没有 seleniumbase
在 his/her PC
解决方法如下:
从您的环境 Python 文件夹
C:\Users\<USER_NAME>\AppData\Local\Programs\Python\Python38
复制并将其粘贴到您的项目文件中。- 文件夹名为 Python38,因为我在我的电脑上使用多个 python 版本,这个文件夹名为 Python38,因为它是 python 版本3.8.10
修改代码如下
import os
# the script was in a folder so I had to do `os.path.dirname(".") first
python_dir_path = os.path.join(os.path.dirname("."), "Python38", "python.exe")
# in that way we will use the python folder with everything installed in
# to help us run the `sbase` command without having to install
# anything on the user's side
os.system(f"{python_path} -m sbase mkrec recording.py")
- 最终使用
PyInstaller v4.7
打包应用程序,以我为例pyinstaller --clean --onedir --name <your_app_name> --windowed --hidden-import seleniumbase --icon <path_to_icon> main.py