【问题标题】:openai command not found (mac)未找到 openai 命令 (mac)
【发布时间】:2022-11-10 19:41:17
【问题描述】:

我正在尝试遵循 Openai here 的微调指南。

我跑了:

pip install --upgrade openai

哪个安装没有任何错误。

但即使重新启动我的终端,我仍然得到

zsh: command not found: openai

这是 echo $PATH 的输出:

/bin:/usr/bin:/usr/local/bin:/Users/nickrose/Downloads/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

这是哪个python的输出:

/usr/bin/python

有关如何解决此问题的任何提示?我在 MacOS Big Sur 11.6 上。

【问题讨论】:

  • 你究竟为什么要尝试从,为什么它应该工作?这是一个 Python 包,它是不是意味着从外壳运行!
  • 根据文档,您应该可以使用 OpenAI 的 CLI 工具:beta.openai.com/docs/guides/fine-tuning 我知道我也可以使用 Python 包执行此操作,我只是好奇为什么 CLI 不起作用。

标签: python machine-learning openai


【解决方案1】:

基本上 pip 将软件包安装在其相关的 python 目录下,在一个名为 site-packages 的目录中(很可能,我不是 python 专家 tbh)。这不包含在您提供的路径中。首先,让 pip 显示包的位置:

pip show openai

输出将是这样的:

Name: openai
Version: 0.22.0
Summary: Python client library for the OpenAI API
Home-page: https://github.com/openai/openai-python
Author: OpenAI
Author-email: support@openai.com
License: 
Location: /Users/<USER>/DIR/TO/SOME/PYTHON/site-packages
Requires: numpy, openpyxl, pandas, pandas-stubs, requests, tqdm
Required-by:

所以你的包裹将在

/Users/<USER>/DIR/TO/SOME/PYTHON/site-packages/openai

/Users/&lt;USER&gt;/DIR/TO/SOME/PYTHON/site-packages/ 添加到您的路径中,或使用包的完整地址,或尝试使用您的python 访问它:

python -m openai # -m stands for module

要获取有关-m 标志的更多信息,请运行python --help

更新

因此,正如您在 cmets 中提到的,在将目录添加到包后,您会得到 permission denied。这实际上意味着该包存在,但您的操作系统不允许执行它。这是您必须做的事情,找到您的包裹,然后:

sudo chmod +x /PATH/TO/script

直接在包中使用 sudo 后得到 command not found 的原因是,您更新了 zsh 中的路径变量,但是当您使用 sudo 时,超级用户使用 sh 而不是 zsh

【讨论】:

  • 我试过了,但得到了以下结果: python3 -m openai: /Library/Developer/CommandLineTools/usr/bin/python3: No module named openai.__main__; 'openai' 是一个包,不能直接执行
  • 你的点子使用python3吗?您更有可能应该使用python -m openai 而不是python3 -m openai。或者,您可以这样做:python3 -m pip install --upgrade openai,然后:python3 -m openai
  • 我还尝试将该位置添加到我的 PATH 变量中(我首先使用 pip show openai),然后尝试运行 openai,但我得到一个 zsh: permission denied: openai 然后我尝试 sudo openai,正确输入我的密码,然后我得到找不到相关命令
  • 感谢更新!我现在尝试了 chmod 命令,但是在直接对包使用 sudo 后,我仍然收到“找不到命令”错误。我实际上如何在 sh 中而不是在 zsh 中更新我的 PATH 变量?
  • @Nick,chmod 命令更改脚本/应用程序的权限。因此,您首先需要告诉您的操作系统将文件的模式更改为executable(通过-x 标志),如下所示:sudo chmod +x Users/nickrose/Library/Python/3.8/lib/python/site-packages/openai(无尾随参数),然后正常执行应用程序(@987654345 @)
【解决方案2】:

所以发生的情况是,安装包后没有可用的实际可执行文件。这就是为什么您在尝试执行时收到错误消息的原因,例如:

openai --help

我设法找到的是命令的实际解析是在

/Users/<USER>/DIR_TO_PYTHON/site-packages/openai/_openai_scripts.py

这只是一个默认情况下不可执行的 python 脚本,因此您必须制定一种解决方法,我认为最简单的方法是创建一个基本上使用给定参数调用它的可执行文件。以下是我为使其在“macOS Monterey 12.0.1”上工作而采取的步骤

找到应该在的“openai”包

/Users/<USER>/DIR_TO_PYTHON/site-packages/

确保您在“openai”包文件夹中并运行

sudo vim /bin/openai

那应该创建一个新文件,输入以下命令并确保文件的路径正确

python3 /Users/<USER>/DIR_TO_PYTHON/site-packages/openai/_openai_scripts.py $@

$@ 用于调用可执行文件时传递的参数

保存文件后,下一步是使其可执行,完成

chmod +x /bin/openai

最后一步是将其添加到 PATH 中,这是通过在 /etc/paths 中添加文件路径来完成的,并且在重新启动终端后,您应该在全局范围内拥有完整的 openai 命令

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    • 2021-05-11
    • 1970-01-01
    • 2015-12-21
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多