当前位置: 首页 > 知识库问答 >
问题:

python - 如何将特定版本的脚本打包进一个文件夹并正常执行?

顾正初
2023-11-28

我想用某个特定的版本(3.11.6)运行脚本,因为torch这个库暂时不支持python3.12。
但我用3.12版本作为主力,所以用virtualenv虚拟了一个环境。
问题是每次运行torch的程序都要进入这个虚拟环境,而我需要用传参的形式调用脚本,如:

python3.11.6 myscript.py -d "xxx"

给第三方程序调用的

之前想打包成exe,但pyinstaller问题太多,不会用,缺各种我没导入过的包(应该是使用的包依赖的),弄了一晚上还是不行,缺太多。放弃了。

那么,我能直接用3.11.6版本的python打开脚本吗?并保证运行正常?
最好能打包进一个文件夹使用

谢谢

共有1个答案

乐正镜
2023-11-28

如果你是用的linux系统,可能直接用docker会是一个比较好的选择。


其实我觉得你可以直接去下载embed版的python,不是安装版的python。
下载了之后解压,直接执行里面的python.exe,配合一个bat脚本,就能满足你的需求(打包进一个文件夹)。

具体步骤:

下载 https://www.python.org/ftp/python/3.11.6/python-3.11.6-embed-...

然后解压 D:/yourapp/。

然后下载 https://bootstrap.pypa.io/get-pip.py 到一个位置,和执行安装pip
image.png
image.png

编辑 python311._pth 这个文件,取消这里的注释
image.png

用pip安装你的依赖包。
image.png

然后准备你的代码,忽略这里的伪代码。。。
image.png

以及这个bat脚本;

@echo offREM  用 python.exe 调用 run.py 并传递所有输入参数.\python-3.11.6-embed-amd64\python.exe .\code\run.py %*

最后的效果就是:
image.png

现在你可以的把 yourapp 这个文件夹复制到其他的电脑上运行了。

 类似资料:
  • 问题内容: 我的问题是我想从另一个python文件中执行一个带有参数的python文件以获得返回值…。 我不知道我是否解释得很好… 例: 从外壳执行以下命令: 这会给我返回照相机清单。 所以我怎么能从另一个脚本中调用这个脚本(包括参数)呢? 我一直在尝试通过阅读此处的其他一些问题自己弄清楚,但是我做得不好,我应该使用execfile()函数吗?究竟如何? 在此先感谢您对像我这样的新手的帮助!! 好

  • 问题内容: 我有一个Python脚本,希望将其编译为Windows可执行文件。现在,在Windows上可以正常工作,但是我希望能够在Linux上运行它。我的开发机器上 确实 有Windows,但是Linux是我的主要开发平台,我有点讨厌重新启动Windows只是为了创建Windows 。我也不需要购买第二个Windows许可证即可在VirtualBox等虚拟机中运行。有任何想法吗? PS:我知道,

  • 问题内容: 因为Node.js现在也可以在Windows上使用,所以我想共享我的脚本而不包含node.exe。是否可以将脚本(没有更多文件)与node.exe一起打包到一个可执行文件中? 问题答案: 您绝对可以,并且使用JXcore非常容易。 在Windows上安装JXcore之后,只需运行: 这将产生一个.exe文件,您可以分发该文件并且可以在没有任何外部依赖项的情况下执行该文件(您甚至在系统上

  • 问题内容: 如何检查正在解释脚本的版本的Python Interpreter? 问题答案: 模块的字符串中提供了此信息: 可读性: 进行进一步处理: 为了确保脚本以Python解释器的最低版本要求运行,请将其添加到你的代码中: 这将比较主要版本和次要版本信息。微(=添加0,1等等),甚至的元组只要你喜欢。但是请注意,最好总是“躲避”检查某个功能是否存在,如果没有,请采取变通方法(或纾困)。有时,某

  • 问题内容: 我尝试执行以下操作(我的jar和python文件都在同一目录中): 和 无论是工作过。因此,我当时以为应该改用Jython,但我认为必须有一种更简单的方法来通过python执行jar文件。 你知道我可能做错了什么吗?或者,是否还有其他网站可以进一步研究我的问题? 问题答案: 我将以这种方式使用子流程: 但是,如果你有一个正确配置的,你应该能够直接运行jar,因为你写的。 那么,这正是您

  • 不管我怎么做, 自从我切换到Python 3之后 我只能从项目的根文件夹运行导入脚本,但不能从子文件夹运行导入脚本。我知道这里有很多关于我收到的错误消息的问题,但是建议的解决方案对我来说并不适用。有人能为这个小样本项目提供一个样本解决方案吗?我相信这会得到很多人的赞赏。 我在中定义了函数,并希望在中调用它。 如果直接在中工作。但是(只是为了让事情井井有条),我想把它放在一个子文件夹里——这令人惊讶