我遇到了同样的问题,但是在需要为Windows用户(来自Linux)打包我的代码的情况下。我的程序包包含许多带有命令行选项的脚本。
我需要将这些脚本安装在Windows用户计算机上的适当位置,以便他们可以从命令行调用它们。由于该软件包对用户友好,因此不可能让我的用户更改其注册表以运行这些脚本。
我遇到了一个解决方案,Continuum的人们使用了他们的Anaconda软件包随附的Python脚本-请查看您的Anaconda / Scripts目录以获取示例。
对于Python脚本test
,创建两个文件:a test.bat
和a test-script.py
。
test.bat
看起来如下所示(调用中的.bat
文件具有我适合我使用的相对路径):Anaconda\Scripts
python.exe
@echo off
set PYFILE=%~f0
set PYFILE=%PYFILE:~0,-4%-script.py
"python.exe" "%PYFILE%" %*
test-script.py
是您实际的Python脚本:
import sys
print sys.argv
如果您将这两个文件留在本地目录中,则可以.bat
通过执行以下操作通过文件调用Python脚本
test.bat hello world
['C:\\...\\test-scripy.py', 'hello', 'world']
如果您将两个文件都复制到您所在的位置PATH
(例如Anaconda\Scripts
),那么您甚至可以通过省略.bat
后缀来调用脚本
test hello world
['C:\\...Anaconda\\Scripts\\test-scripy.py', 'hello', 'world']
免责声明:我不知道发生了什么以及它如何工作,因此不胜感激。