如何解决将命令行参数传递给与 Poetry 一起安装的 Python 脚本
诗documentation说安装包时脚本部分可以用来安装脚本或可执行文件。但它没有显示如何将参数传递给脚本的任何示例。
如何使用 if (status != google.maps.places.PlacesServiceStatus.OK) {
callback(data);
} else {
var geocoder = new google.maps.Geocoder();
}
for (var i = 0; i < predictions.length; i++) {
let coords = geocoder.geocode({
'placeId': predictions[i].place_id,},function (responses,status) {
if (status == 'OK') {
var lat = responses[0].geometry.location.lat()
var lng = responses[0].geometry.location.lng()
return (lat + '#' + lng)
//CONSOLE LOG HERE IS WORKING the RETURN NOT
}
});
console.log(coords);
data.results.push({
id: predictions[i].place_id,text: predictions[i].description,value: coords,});
}
接收函数中的参数?
解决方法
首先是一个小项目设置:
从一个带有 poetry new example_script
的新诗歌项目开始(并在 main.py
目录中创建一个 example_script
文件),结构如下:
├── example_script
│ ├── __init__.py
│ ├── main.py
├── pyproject.toml
├── README.rst
└── tests
├── __init__.py
└── test_poetry_example.py
并在 pyproject.toml
中添加我们将要安装的脚本的配置(在 [tool.poetry.scripts]
部分):
# pyproject.toml
[tool.poetry]
name = "example_script"
# some lines excluded
[tool.poetry.scripts]
my-script = "example_script.main:start"
# some lines excluded
最后是 main.py
文件,其中必须有一个 start
函数(因为我们在 toml 中传递了它)。参数解析器位于该函数内部,因为该函数将在我们运行脚本时最终执行:
import argparse
def some_function(target,end="!"):
"""Some example funcion"""
msg = "hi " + target + end
print(msg)
def start():
# All the logic of argparse goes in this function
parser = argparse.ArgumentParser(description='Say hi.')
parser.add_argument('target',type=str,help='the name of the target')
parser.add_argument('--end',dest='end',default="!",help='sum the integers (default: find the max)')
args = parser.parse_args()
some_function(args.target,end=args.end)
我们可以用诗歌运行脚本,也可以直接安装运行:
# run with poetry
$ poetry run my-script
# install the proyect (this will create a virtualenv if you didn't have it created)
$ poetry install
# activate the virtualenv
$ poetry shell
# run the script
$ my-script --help
usage: my-script [-h] [--end END] target
Say hi.
positional arguments:
target the name of the target
optional arguments:
-h,--help show this help message and exit
--end END sum the integers (default: find the max)
$ my-script "spanish inquisition" --end "?"
hi spanish inquisition?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。