OpenAI命令未找到(Mac)

6

我正在尝试按照Openai的微调指南这里进行操作。

我运行了:

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

这是 which python 的输出:

/usr/bin/python

有什么建议可以解决这个问题吗?我使用的是MacOS Big Sur 11.6。

你为什么要尝试从“shell”中运行“openai”,而且这样做应该能成功吗?这是一个Python包,它不应该从shell中运行! - desertnaut
根据文档,您应该能够使用OpenAI的CLI工具:https://beta.openai.com/docs/guides/fine-tuning我知道我也可以使用Python包来完成这个任务,只是好奇为什么CLI不起作用。 - Nick
1
以下是如何在Mac上设置OpenAI CLI的快速指南:https://kevingoedecke.com/2023/04/14/how-to-install-openai-cli-on-macos/ - Kevin Goedecke
9个回答

8

基本上,pip会将包安装在其相关python目录下的一个名为site-packages的目录中(很可能是这样,但我不是python专家)。这个目录不包含您提供的路径。首先,请要求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/<USER>/DIR/TO/SOME/PYTHON/site-packages/ 添加到您的路径中,要么使用完整的地址访问您的包,或者尝试使用您的 Python 访问它:

python -m openai # -m stands for module

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

更新

正如您在评论中提到的那样,将目录添加到包后,您会收到permission denied的错误。实际上,这意味着该软件包存在,但操作系统不允许其执行。您需要定位您的包,然后执行以下操作:

sudo chmod +x /PATH/TO/script

如果您直接在软件包上使用sudo,却收到“命令未找到”的错误提示,那是因为您已经在zsh中更新了路径变量,但当您使用sudo时,超级用户会使用sh而不是zsh


1
我尝试了这个,但是得到了以下错误: python3 -m openai:/Library/Developer/CommandLineTools/usr/bin/python3: No module named openai.main; 'openai' is a package and cannot be directly executed - Nick
你的pip使用python3吗?更可能的是,你应该使用python -m openai而不是python3 -m openai。或者,你可以这样做:python3 -m pip install --upgrade openai,然后:python3 -m openai - AminMal
我还尝试将该位置添加到我的PATH变量中(首先使用pip show openai),然后尝试运行openai,但是出现了“zsh:permission denied: openai”的错误。然后,我尝试使用sudo openai命令,正确输入密码,但是却提示找不到命令。 - Nick
2
@Nick,chmod命令可以更改脚本/应用程序的权限。因此,您首先需要告诉操作系统将文件模式更改为“可执行”(通过-x标志),如下所示:sudo chmod +x Users/nickrose/Library/Python/3.8/lib/python/site-packages/openai(没有尾随参数),然后正常执行应用程序(openai api fine_tunes .create -t fine_tune.jsonl -m davinci)。 - AminMal
1
@Nick,“command not found”错误是由于“.../site-packages/openai”是一个目录而不是可执行文件。因此,“chmod +x”对它没有用,sudo也不行。openai包。二进制文件“openai”位于另一个目录中,对于我的计算机,它是/Users/<user>/Library/Python/3.9/bin/openai;因此,您需要将/Users/<your-user-name>/Library/Python/<Python-Version>/bin添加到您的路径中或使用完整路径调用它。 - SDwarfs
显示剩余6条评论

5

我曾经遇到过类似的问题。可能是因为您机器上的全局python与pip安装路径不匹配,导致它可能会安装在其他python文件夹(例如3.9),而您的Mac中全局设置的是3.10 python版本。

首先使用homebrew安装最新版本的python。

brew install python

它将在您的计算机上安装最新的Python。然后尝试使用以下命令再次安装openai:
pip3 install openai

或者使用pip(您可以尝试使用两种方式安装,看看哪一种符合您的系统配置)

pip install openai

现在
ENJOY a cup of coffee ;)

3
这并没有直接回答问题,但是指定了一种替代方案,如果您只想准备数据集并创建新模型以进行微调,那么它就很有用。无论您使用哪个系统都可以。

经过长时间的挣扎,我决定不在我的特定机器上运行cli,因为有太多不同的配置和混乱。我的最终目标只是创建一个模型并将其上传到OpenAI。

因此,如果其他人遇到这个帖子,请使用Google Colab。我也分享了其中一个链接,其中包含需要遵循的步骤here

如果将来链接不起作用,我也会在下面列出步骤:

(步骤1)

设置您的API密钥(已添加的API密钥是虚假的,请用您自己的替换):

%env OPENAI_API_KEY=sk-Kz8Weh1234ddgYBmsdfinsdf7ndsfg55532432

(步骤2)

使用以下命令通过pip安装openai软件包:

!pip install -Uq openai

(第三步)

像下面这样导入openai包:

import openai

(第四步)

确保在Google Colab文件夹中上传promptdata.csv文件。

上传的方法如下:

  1. 在右侧,您将看到汉堡菜单图标,请单击它。
  2. 您将看到“目录”
  3. 单击顶部的最后一个文件夹图标。如果将鼠标悬停在图标上,则会显示“文件”。
  4. 现在,您将看到一个名为“sample_data”的文件夹。
  5. 单击“sample_data”的三个点菜单,然后选择“上传”。
  6. 您应该能够上传您的csv文件
  7. 上传csv文件不是必需的。您还可以上传OpenAI文档中列出的任何类型的TSV、XLSX、JSON或JSONL文件。但是,在运行以下命令后,它将始终转换为JSONL文件。

完成文件上传后,您可以运行以下命令准备数据集,它将返回一个新的JSONL文件,该文件与原始文件位于同一位置,并具有工具提供的所有更正。

!openai tools fine_tunes.prepare_data -f "/content/sample_data/promptdata.csv"

步骤五:

在进行更正后,再次运行以下命令,很可能会显示“未找到任何修复措施”。

!openai tools fine_tunes.prepare_data -f "/content/sample_data/promptdata_prepared.jsonl"

步骤 6:

最后,使用文件 promptdata_prepared.jsonl 运行以下命令来创建模型。

!openai api fine_tunes.create -t "/content/sample_data/promptdata_prepared.jsonl"

(第七步)

创建模型后,请注意"已上传模型"的名称


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命令


尝试过 sudo vim /bin/openai 并输入 python3 /Users/<USER>/DIR_TO_PYTHON/site-packages/openai/_openai_scripts.py $@,但现在尝试使用 :wq 无法退出vim。我该怎么办? - Clive Machado
你能发一下错误信息吗?否则只能瞎猜。 - Veselin Yotov
我发现我在我的工作笔记本电脑上没有一些访问权限。我不认为我解决了这个问题,但最终使用了Google Colab进行微调。 - Clive Machado

0
我遇到了类似的错误,但经过一些搜索,在使用 brew 安装后成功解决了。

brew install openai

install openai


0
这是对我有效的方法:
我在 /usr/local/bin 中创建了一个可执行文件,用于执行OpenAI Python脚本:

~/.local/lib/python3.10/site-packages/openai/_openai_scripts.py

这是我使用的命令:
 sudo sh -c 'echo python3 /home/<MY_USERNAME>/.local/lib/python3.10/site-packages/openai/_openai_scripts.py \$\@ > /usr/local/bin/openai'

0

在我的Mac上尝试了几个其他建议都没有起作用之后,我咨询了我的儿子,他是一名Python开发人员。他建议我在我的Mac上(MacOS:Ventura,13.4; Chip:M1 Pro)创建一个Python虚拟环境,步骤如下:

python3 -m venv openaiwork (这将在当前位置创建一个名为openaiwork的新虚拟目录)

source openaiwork/bin/activate

pip install openai

我也需要在这个新的虚拟环境中安装pandas,使用以下命令:

pip install pandas

按照上述描述进行设置后,OpenAI脚本运行得非常顺畅!


0
如果你遇到:
WARNING: The script openai.exe is installed in 'C:\Users\...\...\local-packages\Python39\Scripts' which is not on PATH.

你应该:
export PATH="~\...\...\local-packages\Python39\Scripts:$PATH"

对于MacOS和Linux系统:
export PATH="/path/to/scripts:$PATH" 

对于Windows系统:

setx /m PATH "%PATH%;C:\path\to\scripts" 

将C:\path\to\scripts替换为脚本路径。

0

Python3解决方案

运行以下命令安装OpenAI CLI

pip3 install --upgrade openai

如果你现在运行openai --help,你仍然会收到一个错误消息,告诉你找不到命令。
下一步是将Python OpenAI脚本设为可执行,并将其添加到我们的路径中。
使OpenAI CLI可执行 我们需要在您的本地用户bin目录(/usr/local/bin)中创建一个二进制文件。该目录包含与您的用户特定的所有可执行二进制文件。
sudo sh -c 'echo python3 "$(python3 -m site --user-site)"/openai/_openai_scripts.py \$\@ > /usr/local/bin/openai'

这个命令的作用如下:
  • 我们获取到 Python 网站包目录的路径,其中安装了所有全局 Python 包:python3 -m site --user-site
  • 我们将该路径扩展为映射到 OpenAI CLI 脚本的 Python 脚本:openai/_openai_scripts.py
  • 然后,我们将其导入到 /usr/local/bin 目录中的文件中,以便可以在任何地方使用它作为一个 shell 命令。

现在我们需要做的最后一件事就是使该文件可执行:

sudo chmod +x /usr/local/bin/openai

这应该就是了,现在你应该能够在终端的任何位置运行OpenAI CLI。
你可以通过以下步骤来测试:
openai --help

这将返回所有可用的OpenAI CLI命令。
感谢这个博客

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接