宝塔安装python使用通义模型文生图

当前宝塔面板默认的python版本是3.6.8,由于需要用到的python库只支持3.8以上,所以要安装新的python版本

python --version
pip3 install -U openai

报错信息为

Collecting pandas>=1.2.3 (from openai)
Could not find a version that satisfies the requirement pandas>=1.2.3 (from openai) (from versions: 0.1, 0.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.16.1, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0, 0.19.1, 0.19.2, 0.20.0, 0.20.1, 0.20.2, 0.20.3, 0.21.0, 0.21.1, 0.22.0, 0.23.0, 0.23.1, 0.23.2, 0.23.3, 0.23.4, 0.24.0, 0.24.1, 0.24.2, 0.25.0, 0.25.1, 0.25.2, 0.25.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5)
No matching distribution found for pandas>=1.2.3 (from openai)

pandas版本需要>=1.2.3

python -m pip list

发现没有安装panda

安装panda

pip3 install --upgrade pandas

安装后的panda版本仍然小于 1.2.3,原因是宝塔默认python版本3.6.8,解决需要升级python版本

安装3.9.10

注意安装成功后输入

python --version

python版本仍为3.6.8,是因为python默认的全局变量仍为3.6.8

新安装的python目录为/www/server/pyporject_evn/versions/3.9.10/

/www/server/pyporject_evn/versions/3.9.10/bin/python3.9 --version

更改默认的全局变量可以打开配置文件/root/.bashrc在最后添加一行

export PATH="/www/server/pyporject_evn/versions/3.9.10/bin:$PATH"

再次输入

python --version

切换成功

还有可能会遇见一下问题

WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the –root-user-action option if you know what you are doing and want to suppress this warning.

忽略冲动

/www/server/pyporject_evn/versions/3.9.10/bin/pip3 install -U openai --root-user-action=ignore

为什么以’root’用户运行pip可能会导致权限损坏和与系统包管理器的冲突行为?

当以root用户身份运行pip时,你可能会遇到权限损坏和与系统包管理器的冲突行为。这是因为pip默认会将Python包安装到系统级别的Python目录中。系统级别的目录通常由系统包管理器(如aptyum等)管理,而pip直接对这些目录进行操作可能会导致以下问题:

  1. 权限混乱root用户安装的包可能会被其他非root用户访问或修改,这可能导致权限问题。
  2. 版本冲突:系统包管理器安装的Python包可能与pip安装的包存在版本冲突,导致系统不稳定。
  3. 依赖问题pip安装的包可能会依赖于特定版本的Python或其他库,而这些依赖可能与系统级别的库不兼容

2. 介绍什么是虚拟环境,并说明其优势

虚拟环境是Python的一个功能,它允许你在一个隔离的环境中安装和管理Python包。这意味着你可以为每个项目创建一个独立的虚拟环境,并在其中安装所需的包版本,而不会影响到系统级别的Python环境或其他项目的虚拟环境。

虚拟环境的优势包括:

  1. 隔离性:每个虚拟环境都是独立的,互不影响。
  2. 灵活性:可以为每个项目安装不同版本的Python包。
  3. 安全性:避免系统级别的包被意外修改或删除。
  4. 便携性:虚拟环境可以轻松地复制和分享给其他人。

3. 提供关于如何创建和使用虚拟环境的指南或链接

以下是创建和使用Python虚拟环境的步骤:

创建虚拟环境

  1. 首先,确保你已经安装了Python和pip
  2. 使用pip安装venv模块(如果尚未安装):bashpip install venv 注意:从Python 3.3开始,venv模块已经包含在Python标准库中,因此通常不需要单独安装。
  3. 创建一个新的虚拟环境:
python3 -m venv myenv

其中myenv是虚拟环境的名称,你可以根据需要更改。

激活虚拟环境

在Linux或macOS上:

source myenv/bin/activate

在Windows上:

myenv\Scripts\activate

激活后,你会在命令行提示符中看到虚拟环境的名称(例如(myenv))。

在虚拟环境中安装包

激活虚拟环境后,你可以使用pip安装所需的Python包:

bashpip install package_name

这些包将仅安装在当前激活的虚拟环境中。

退出虚拟环境

要退出虚拟环境,只需在命令行中输入:

bashdeactivate

虚拟环境使用

/www/server/pyporject_evn/versions/3.9.10/bin/python3.9 --version

现在可以试着使用python调用通义万象文生图

通义万象文生图文档

在\www\wwwroot\python\mypy\文件夹中创造一个test.py文件,源码为

from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os

prompt = "一位年轻的中国女人,牛仔裤,米白色长袖T恤,完美无瑕,干净,黑发,身材匀称,25岁,完美的女性身体,细腰,背对着镜头,站立着,上半身俯趴在桌子上,弓起身子,撅起屁股,紧致的粗大腿,后视非常迷人,背对着,镜头距离10米 ,全身照,全身生活彩照, 真实拍摄,美颜相机,超真实相片,美美的妆造,光影感,背光,光滑的皮肤。"


print('----sync call, please wait a moment----')
rsp = ImageSynthesis.call(api_key="sk-xxxx",
                          model=ImageSynthesis.Models.wanx_v1,
                          prompt=prompt,
                          n=1,
                          style='<watercolor>',
                          size='1280*720')
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
    # 在当前目录下保存图片
    for result in rsp.output.results:
        file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
        with open('./%s' % file_name, 'wb+') as f:
            f.write(requests.get(result.url).content)
else:
    print('sync_call Failed, status_code: %s, code: %s, message: %s' %
          (rsp.status_code, rsp.code, rsp.message))

虚拟环境运行该文件

/www/wwwroot/Python/myenv/bin/python3 mypy/test.py

可能会报错

ModuleNotFoundError: No module named ‘xxx’

该错误的主要原因在于xxx库没有被正确安装在当前的Python环境中

如: 缺少requests

安装这个 requests 库

/www/wwwroot/Python/myenv/bin/python3 -m pip install requests

如: 缺少 dashscope

安装这个 dashscope 库

/www/wwwroot/Python/myenv/bin/python3 -m pip install dashscope

最终运行结果

最终生成图片