从命令行运行python模块

时间:2019-01-04 01:29:02

标签: python bash

我真的不知道怎么问这个问题,但是我可以描述我想要实现的目标。我会更新建议的所有修改。

我有一个使用一些命令行参数的python模块。使用该模块需要在python解释器的外部进行一些初始设置。进行安装的python文件运行正常,但问题是我必须仔细研究python安装才能找到该文件的位置,即我必须执行python full-path-to-setup-script.py -a argA -b argB等。我想调用安装脚本像这样

some-setup-command -a argA -b argB

我想实现类似的目标

workon environmnent_name,如virtualenv模块或

pipenv install,如pipenv模块中一样。

我知道以上两个命令都调用某种脚本(无论是bash还是python)。我尝试挖掘virtualenvpipenv的源代码,但没有成功。

如果有人可以向我指出用于编写此类程序的任何必要资源,我将不胜感激。

4 个答案:

答案 0 :(得分:3)

如果full-path-to-setup-script.py是可执行文件,并且具有正确的shebang行

#! /usr/bin/env python

那么您可以

ln -s full-path-to-setup-script.py ~/bin/some-command

考虑到~/bin存在并且在您的PATH中, 您将可以调用

some-command -a argA -b argB

答案 1 :(得分:2)

很难理解您要寻找的内容,但是python -m是我的最佳猜测。

例如,要创建新的Jupyter内核,我们调用

python -m ipykernel arg --option --option

其中arg是CLI参数,而option是CLI选项,ipykernel是接收argoption的模块。 / p>

答案 2 :(得分:1)

可从命令提示符处调用的命令位于系统PATH变量中的目录之一中。如果您使用的是Windows,则可以通过以下方式查看位置:

echo %PATH%

或者,如果您想要更好的读数:

powershell -c "$env:path -split(';')"

一种解决方案是创建一个文件夹,将其添加到系统的PATH中,然后创建一个可运行的可调用文件。在此示例中,我们将在您的用户配置文件中创建一个文件夹,将其添加到路径,然后在该文件夹中创建一个可调用文件。

mkdir %USERPROFILE%\path
set PATH=%PATH%%USERPROFILE%\path;
setx PATH %PATH%

在文件夹%USERPROFILE%\path中,我们创建具有以下内容的批处理文件:

# file name:
# some-command.bat
#
python C:\full\path\to\setup-script.py %*

现在您应该可以拨打电话

some-command -a argA -b argB

批处理文件将使用python脚本调用python并传递您添加的参数。

答案 3 :(得分:1)

看着上面的答案,我看不到有人提到过

您当然可以编译python文件并使用

赋予可执行权限
chmod +x filename.py

然后以

运行
./filename.py -a argA -b argB ...

此外,您还可以删除扩展.py(由于它现在是可执行文件),然后仅以

身份运行它。
./filename -a argA -b argB ...