Erpnext安装

Erpnext安装

环境要求

Ubuntu 23.04 x86_64
Python 3.10.12
pip 23.0.1
node v18.16.0
npm 9.5.1
yarn 1.22.22
MariaDB 10.11.2
Redis 7.0.8
wkhtmltox 0.12.6.1
bench 5.22.6

环境安装

Reids

安装

// 安装7.0.8 也可不指定版本 直接执行 sudo apt install redis-server
sudo apt install redis-server=5:7.0.8-4
// 检查安装的版本
redis-server --version
// 配置 apt 保持特定版本
// 安装后保持该特定版本而不自动升级,可以将该包保持在当前版本
sudo apt-mark hold redis-server

MariaDB

安装

// 安装 也可不指定版本 直接执行 sudo apt install mariadb-server
sudo apt install mariadb-server=1:10.11.2-1
// 在此安装过程中,系统将提示您设置 MySQL root 密码。如果未出现提示,则必须自行初始化MySQL服务器设置。您可以通过运行以下命令来执行此操作
// 请记住:只有在安装过程中未提示您输入密码时才运行它。
sudo mysql_secure_installation
// 
sudo apt-get install mariadb-client-10.3// 现在,编辑 MariaDB 配置文件。
sudo vim /etc/mysql/my.cnf
// 并添加此配置
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci[mysql]
default-character-set = utf8mb4
// 现在,只需重新启动mysql服务,就可以开始了。
service mysql restart// 查看版本
mysql --version
// 固定版本防止自动更新 ps:可以不执行这步
sudo apt-mark hold mariadb-server

Node

下载安装包v18.16.0

https://nodejs.org/dist/v18.16.0/

wget -c https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.gz
tar -xvf node-v18.16.0-linux-x64.tar.gz
mv node-v18.16.0-linux-x64 /usr/local/nodejs// 创建软连接
ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm// 编辑环境变量
vim /etc/profileexport NODE_HOME=/usr/local/nodejs/
export PATH=$NODE_HOME/bin:$PATH
// 使环境变量生效
source /etc/profile// 验证
node -v
npm -v

Yarn

1.22.22

npm install -g yarn@1.22.22

wkhtmltox

打开

https://wkhtmltopdf.org/downloads.html

下载

image

// 从 https://wkhtmltopdf.org/downloads.html 下载并安装 wkhtmltopdf 包
apt-get install xvfb libfontconfig
// 安装
dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb// 可能遇到缺少xfonts-75dpi
sudo apt-get install -y xfonts-75dpi
// 再次尝试安装 wkhtmltox 包
sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb

Python

安装3.10.12

// 检查
python3 --version // Python 3.10.12
// 如果不是3.10.12 再进行安装
// 安装pyenvsudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev \
libffi-dev liblzma-dev python-openssl git// 使用 curl 来安装 pyenv
curl https://pyenv.run | bash// 在 ~/.bashrc 或 ~/.zshrc 文件中添加以下内容:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"// 重新加载 shell 配置文件
source ~/.bashrc  # 如果使用 bash
source ~/.zshrc   # 如果使用 zsh// 使用 pyenv 安装指定版本的 Python
pyenv install 3.10.12// 设置全局 Python 版本
pyenv global 3.10.12// 验证当前 Python 版本
python --version

bench

安装5.22.6 bench

pip3 install frappe-bench==5.22.6// 验证
bench --version

安装项目

  1. 在合适的目录下

    bench init frappe-erpnext

  2. 初始化站点

    bench new-site erpnext.server.app

  3. 下载erpnext

    bench get-app https://github.com/frappe/payments.git
    bench get-app https://github.com/frappe/erpnext.git
    bench get-app https://github.com/frappe/hrms.git
    // 汉化
    bench get-app --branch version-14 https://gitee.com/phipsoft/zh_chinese_language.git

  4. 安装erpnext

    bench --site erpnext.server.app install-app payments
    bench --site erpnext.server.app install-app erpnext
    bench --site erpnext.server.app install-app hrms
    bench --site erpnext.server.app install-app zh_chinese_language

  5. 启动项目

    bench start

常见问题

新版ubuntu使用pip时发生错误

error: externally-managed-environment× This environment is externally managed
╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz is the package you are trying toinstall.If you wish to install a non-Debian-packaged Python package,create a virtual environment using python3 -m venv path/to/venv.Then use path/to/venv/bin/python and path/to/venv/bin/pip. Makesure you have python3-full installed.If you wish to install a non-Debian packaged Python application,it may be easiest to use pipx install xyz, which will manage avirtual environment for you. Make sure you have pipx installed.See /usr/share/doc/python3.11/README.venv for more information.

解决方案:如果你习惯于原来的用法可以强制删除此警告

sudo mv /usr/lib/python3.x/EXTERNALLY-MANAGED /usr/lib/python3.x/EXTERNALLY-MANAGED.bak

安装时不能使用root权限

root@molang-System-Product-Name:~/workspace$ bench init frappe-bench
WARN: You should not run this command as root

解决方案: 切换到普通用户

su molang

当前用户权限不够

molang@molang-System-Product-Name:~/workspace$ bench init frappe-bench
Traceback (most recent call last):File "/usr/local/lib/python3.11/dist-packages/bench/commands/make.py", line 75, in initinit(File "/usr/local/lib/python3.11/dist-packages/bench/utils/render.py", line 105, in wrapper_fnreturn fn(*args, **kwargs)^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/dist-packages/bench/utils/system.py", line 64, in initbench.setup.dirs()File "/usr/local/lib/python3.11/dist-packages/bench/utils/render.py", line 126, in wrapper_fnreturn fn(*args, **kwargs)^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/dist-packages/bench/bench.py", line 338, in dirsos.makedirs(self.bench.name, exist_ok=True)File "<frozen os>", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: 'frappe-bench'ERROR: There was a problem while creating frappe-bench
Do you want to rollback these changes? [y/N]: y
INFO: Rolling back Bench "frappe-bench"

解决方案:增加权限

sudo chmod 777 .

找不到yarn命令

执行bench init frappe-bench时报错找不到yarn

molang@molang-System-Product-Name:~/workspace$ bench init frappe-bench
Setting Up Environment
$ python3 -m venv env
$ /home/molang/workspace/frappe-bench/env/bin/python -m pip install --quiet --upgrade pip
$ /home/molang/workspace/frappe-bench/env/bin/python -m pip install --quiet wheel
Getting frappe
$ git clone https://github.com/frappe/frappe.git  --depth 1 --origin upstream
正克隆到 'frappe'...
remote: Enumerating objects: 3226, done.
remote: Counting objects: 100% (3226/3226), done.
remote: Compressing objects: 100% (2837/2837), done.
remote: Total 3226 (delta 431), reused 1598 (delta 275), pack-reused 0
接收对象中: 100% (3226/3226), 11.05 MiB | 11.13 MiB/s, 完成.
处理 delta 中: 100% (431/431), 完成.
Installing frappe
$ /home/molang/workspace/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/molang/workspace/frappe-bench/apps/frappe 
$ yarn install --check-files
Traceback (most recent call last):File "/usr/local/lib/python3.11/dist-packages/bench/commands/make.py", line 75, in initinit(File "/usr/local/lib/python3.11/dist-packages/bench/utils/render.py", line 105, in wrapper_fnreturn fn(*args, **kwargs)^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/dist-packages/bench/utils/system.py", line 87, in initget_app(File "/usr/local/lib/python3.11/dist-packages/bench/app.py", line 772, in get_appapp.install(verbose=verbose, skip_assets=skip_assets, restart_bench=restart_bench)File "/usr/local/lib/python3.11/dist-packages/bench/utils/render.py", line 126, in wrapper_fnreturn fn(*args, **kwargs)^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/dist-packages/bench/app.py", line 255, in installinstall_app(File "/usr/local/lib/python3.11/dist-packages/bench/app.py", line 915, in install_appbench.run(yarn_install, cwd=app_path)File "/usr/local/lib/python3.11/dist-packages/bench/bench.py", line 48, in runreturn exec_cmd(cmd, cwd=cwd or self.cwd, _raise=_raise)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/dist-packages/bench/utils/__init__.py", line 165, in exec_cmdreturn_code = subprocess.call(spl_cmd, cwd=cwd, universal_newlines=True, env=env)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3.11/subprocess.py", line 389, in callwith Popen(*popenargs, **kwargs) as p:^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3.11/subprocess.py", line 1026, in __init__self._execute_child(args, executable, preexec_fn, close_fds,File "/usr/lib/python3.11/subprocess.py", line 1950, in _execute_childraise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: 'yarn'ERROR: There was a problem while creating frappe-bench
Do you want to rollback these changes? [y/N]: y
INFO: Rolling back Bench "frappe-bench"
molang@molang-System-Product-Name:~/workspace$ yarn --version
找不到命令 “yarn”,但可以通过以下软件包安装它:
sudo apt install cmdtest

解决方案一:

找到yarn地址

molang@molang-System-Product-Name:~/workspace$ npm bin -g
/home/node/node-v18.12.1-linux-x64/bin

打开你的终端配置文件(通常是 **~/.bashrc****~/.bash_profile****~/.profile**),然后将 **yarn** 的安装路径添加到 PATH 变量中。

在文件的末尾添加以下行:

export PATH="$PATH:/home/node/node-v18.12.1-linux-x64/bin"

刷新配置

molang@molang-System-Product-Name:~/workspace$ source ~/.bashrc
molang@molang-System-Product-Name:~/workspace$ yarn --version
1.22.21

解决方案二:

还记得上面安装node时创建的软连接吗?

   // 解压node....// 创建软连接ln -s /usr/local/nodejs/bin/node /usr/local/bin/nodeln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm// 编辑环境变量vim /etc/profile.....

于是我们可以使用同样的方式为yarn创建软连接

 // 创建软连接ln -s /usr/local/nodejs/bin/yarn /usr/local/bin/yarn// 刷新一下配置source /etc/profile// 测试yarn -v

代理问题

User
molang@molang-System-Product-Name:~/workspace/frappe-erpnext$ bench get-app hrms
A directory for the application 'hrms' already exists. Do you want to continue and overwrite it? [y/N]: y
INFO: App moved from apps/hrms to archived/apps/hrms-2024-04-02_2
Getting hrms
$ git clone https://github.com/frappe/hrms.git --branch develop --depth 1 --origin upstream
正克隆到 'hrms'...
remote: Enumerating objects: 1513, done.
remote: Counting objects: 100% (1513/1513), done.
remote: Compressing objects: 100% (1145/1145), done.
remote: Total 1513 (delta 410), reused 994 (delta 302), pack-reused 0
接收对象中: 100% (1513/1513), 7.86 MiB | 3.24 MiB/s, 完成.
处理 delta 中: 100% (410/410), 完成.
Ignoring dependencies of hrms. To install dependencies use --resolve-deps
Installing hrms
$ /home/molang/workspace/frappe-erpnext/env/bin/python -m pip install --quiet --upgrade -e /home/molang/workspace/frappe-erpnext/apps/hrms error: subprocess-exited-with-error× pip subprocess to install build dependencies did not run successfully.│ exit code: 1╰─> [2 lines of output]ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: /home/molang/workspace/frappe-erpnext/env/bin/python -m pip install --quiet --upgrade -e /home/molang/workspace/frappe-erpnext/apps/hrms 
subprocess.CalledProcessError: Command '/home/molang/workspace/frappe-erpnext/env/bin/python -m pip install --quiet --upgrade -e /home/molang/workspace/frappe-erpnext/apps/hrms ' returned non-zero exit status 1.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/usr/local/bin/bench", line 8, in <module>sys.exit(cli())

代理问题导致SOCKSp不可用 最后就会显示ython -m pip install --quiet --upgrade -e 不可用

如果因为梯子导致pip intstall报错 ValueError: Unable to determine SOCKS version from socks://127.0.0.1:1080 问题

解决办法就是重置代理就ok

unset all_proxy

unset ALL_PROXY

没有虚拟环境

molang@AY130628150444Z:~$ bench init frappe-erpnext
Setting Up Environment
$ python3 -m venv env
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.apt install python3.10-venvYou may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.Failing command: /home/molang/frappe-erpnext/env/bin/python3subprocess.CalledProcessError: Command 'python3 -m venv env' returned non-zero exit status 1.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/usr/local/lib/python3.10/dist-packages/bench/commands/make.py", line 75, in initinit(File "/usr/local/lib/python3.10/dist-packages/bench/utils/render.py", line 105, in wrapper_fnreturn fn(*args, **kwargs)File "/usr/local/lib/python3.10/dist-packages/bench/utils/system.py", line 66, in initbench.setup.env(python=python)File "/usr/local/lib/python3.10/dist-packages/bench/utils/render.py", line 126, in wrapper_fnreturn fn(*args, **kwargs)File "/usr/local/lib/python3.10/dist-packages/bench/bench.py", line 362, in envself.run(f"{venv} env", cwd=self.bench.name)File "/usr/local/lib/python3.10/dist-packages/bench/bench.py", line 48, in runreturn exec_cmd(cmd, cwd=cwd or self.cwd, _raise=_raise)File "/usr/local/lib/python3.10/dist-packages/bench/utils/__init__.py", line 169, in exec_cmdraise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: python3 -m venv envERROR: There was a problem while creating frappe-erpnext

安装虚拟环境

apt install python3.10-venv

无法安装虚拟环境

root@AY130628150444Z:/home/molang#  apt install python3.10-venv
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:python3.10-venv : Depends: python3-pip-whl but it is not going to be installedDepends: python3-setuptools-whl but it is not going to be installedwkhtmltox : Depends: fontconfig but it is not going to be installedDepends: libxrender1 but it is not going to be installedDepends: xfonts-75dpi but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

看起来你遇到了依赖问题,导致无法安装 **python3.10-venv** 包。这可能是因为某些依赖包没有正确安装或者版本不兼容所致。

你可以尝试运行 **apt --fix-broken install** 命令来修复未满足的依赖关系,它会尝试自动解决依赖问题。

apt --fix-broken install

运行这个命令后,系统会尝试自动安装缺失的依赖项,并解决任何存在的依赖关系问题。

一旦修复了依赖关系问题,你就可以再次尝试安装 **python3.10-venv** 包。

apt install python3.10-venv

如果问题仍然存在,可能需要更深入地检查依赖关系,确保所有的依赖项都正确安装并且与系统兼容。

Exception: No process manager found

command bench start cause error:Traceback (most recent call last):
File "/usr/local/bin/bench", line 9, in
load_entry_point('bench==0.1', 'console_scripts', 'bench')()
File "/home/fourmax/bench/bench/cli.py", line 24, in cli
return bench()
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 488, in call
return self.main(_args, *_kwargs)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 474, in main
self.invoke(ctx)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 758, in invoke
return self.invoke_subcommand(ctx, cmd, cmd_name, ctx.args[1:])
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 767, in invoke_subcommand
return cmd.invoke(cmd_ctx)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 659, in invoke
ctx.invoke(self.callback, *_ctx.params)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 325, in invoke
return callback(_args, **kwargs)
File "/home/fourmax/bench/bench/cli.py", line 97, in start
_start()
File "/home/fourmax/bench/bench/utils.py", line 157, in start
raise Exception("No process manager found")
Exception: No process manager found

解决

You can install it using sudo pip install honcho

Redis端口占用

替补启动
14:50:10系统| redis_socketio.1 已启动 (pid=19224)
14:50:10 系统 | redis_cache.1 已启动 (pid=19220)
14:50:10 系统 | redis_queue.1 已启动 (pid=19229)
14:50:10 redis_cache.1 | 19223:C 2023 年 9 月 1 日 14:50:10.077 # oO0OoO0OoO0Oo Redis 正在启动 oO0OoO0OoO0Oo
14:50:10 redis_cache.1 | 19223:C 19223:C 19223:C 2023年9月1日 14:50:10.078 # Redis 版本=6.0.16,位=64,提交=00000000,修改=0,pid=19223,刚刚开始
14:50:10 redis_cache. 1 | 19223:C 19223:C 2023 年 9 月 1 日 14:50:10.078 # 配置已加载
14:50:10 redis_cache.1 | 19223:M 2023 年 9 月 1 日 14:50:10.078 * 将打开文件的最大数量增加到 10032(最初设置为 1024)。
14:50:10 redis_cache.1 | 19223:M 19223:M 19223:M 2023 年 9 月 1 日 14:50:10.078 # 无法创建 TCP 监听设备 127.0.0.1:13000:bind:地址已在使用中
14:50:10 redis_queue.1 | 19223:M 19223:M 19223:M 2023 年 9 月 1 日 14:50:10.078 19231:C 2023 年 9 月 1 日 14:50:10.078 # oO0OoO0OoO0Oo Redis 正在启动 oO0OoO0OoO0Oo
14:50:10 redis_queue.1 | 19231:C 19231:C 2023年9月1日14:50:10.078 # Redis版本=6.0.16,位=64,提交=00000000,修改=0,pid=19231,刚刚开始
14:50:10 redis_queue. 1 | 19231:C 19231:C 2023 年 9 月 1 日 14:50:10.078 # 配置已加载
14:50:10 redis_queue.1 | 19231:M 2023
年9月1日 14:50:10.079 * 将打开文件的最大数量增加到10032(最初设置为1024)。redis_cache.1 已停止 (rc=1)
14:50:10 redis_queue.1 | 19231:M 2023年9月1日 14:50:10.079 * 将打开文件的最大数量增加到10032(最初设置为1024)。 19231:M 2023 年 9 月 01 日 14:50:10.082 # 创建无法使用 TCP 监听设备 127.0.0.1:11000:bind:地址已在使用
14:50:10 系统 | 19231:M 19231:M 2023 年 9 月 01 日 14:50:10.082 redis_queue.1 已停止 (rc=1)
14:50:10 系统 | web.1 启动 (pid=19242)
14:50:10 系统 | web.1 启动 (pid=19242) 14:50:10 web.1 启动 (pid=19242) 14:50:10 Schedule.1 已启动 (pid=19238)
14:50:10 系统 | web.1 已启动 (pid=19238) 14:50:10 worker_long.1 启动 (pid=19240)
14:50:10 系统 | worker_short.1 启动 (pid=19241)
14:50:10 系统 | watch.1 启动 (pid=19235)
14:50:10 redis_socketio.1 | 19227:C 2023 年 9 月 1 日 14:50:10.090 # oO0OoO0OoO0Oo Redis 正在启动 oO0OoO0OoO0Oo
14:50:10 redis_socketio.1 | 19227:C 2023 年 9 月 1 日 14:50:10.091 # Redis 版本=6.0.16,位=64,提交=00000000,修改=0,pid=19227,刚刚开始
14:50:10 redis_socketio.1 | 19227:C 19227:C 19227:C 2023 年 9 月 1 日 14:50:10.091 # 配置已加载
14:50:10 redis_socketio.1 | 19227:M 2023 年 9 月 1 日 14:50:10.092 * 将打开文件的最大数量增加到 10032(最初设置为 1024)。
14:50:10 redis_socketio.1 | 19227:M 19227:M 19227:M 2023 年 9 月 1 日 14:50:10.093 # 无法创建 TCP 监听插件 127.0.0.1:12000:bind:已在使用
14:50:10 系统 | 19227:M 19227:M 19227:M 2023 年 9 月 1 日 14:50:10.093 redis_socketio.1 已停止 (rc=1)
14:50:10 系统 | socketio.1 已启动(pid=19239)
14:50:10 系统 | worker_default.1 已启动(pid=19244)
14:50:10 系统 | 向 web.1(pid 19242)发送 SIGTERM
14:50:10 系统 | 向socketio.1(pid 19239)发送SIGTERM
14:50:10 系统 | 向 watch.1(pid 19235)发送 SIGTERM
14:50:10 系统 | 向schedule.1(pid 19238)发送SIGTERM
14:50:10 系统 | 向worker_short.1(pid 19241)发送SIGTERM
14:50:10 系统 | 向worker_long.1(pid 19240)发送SIGTERM
14:50:10 系统 |向worker_default.1 (pid 19244) 发送SIGTERM
14:50:10 系统| socketio.1 已停止(rc=-15)
14:50:10 系统 | Schedule.1 已停止(rc=-15)
14:50:10 系统 | worker_short.1 已停止(rc=-15)
14:50:10 系统 | web.1 已停止(rc=-15)
14:50:10 系统 | worker_long.1 已停止(rc=-15)
14:50:10 系统 | worker_default.1 已停止(rc=-15)
14:50:10 系统 | watch.1 已停止(rc=-15)

解决

bench init --skip-redis-config-generation frappe-bench

注意:在工作台初始化期间使用选项“–skip-redis-config- Generation”,不再需要这些操作。但至少,看看 ProcFile 看看在启动命令上启动 honcho 时发生了什么

Honcho 是 Bench 用来管理 Frappe 所需的所有流程的工具。通常,这些都在本地主机中运行,但在这种情况下,我们有 Redis 的外部容器。因此,我们必须阻止 Honcho 尝试启动 Redis 进程。

官方文档:https://github.com/frappe/frappe_docker/blob/main/docs/development.md#edit-honchos-procfile

没有Git

www@erp:/opt$ /usr/local/bin/bench --version
Traceback (most recent call last):File "/home/www/.local/lib/python3.10/site-packages/git/__init__.py", line 296, in <module>refresh()File "/home/www/.local/lib/python3.10/site-packages/git/__init__.py", line 287, in refreshif not Git.refresh(path=path):File "/home/www/.local/lib/python3.10/site-packages/git/cmd.py", line 631, in refreshraise ImportError(err)
ImportError: Bad git executable.
The git executable must be specified in one of the following ways:- be included in your $PATH- be set via $GIT_PYTHON_GIT_EXECUTABLE- explicitly set via git.refresh(<full-path-to-git-executable>)All git commands will error until this is rectified.This initial message can be silenced or aggravated in the future by setting the
$GIT_PYTHON_REFRESH environment variable. Use one of the following values:- quiet|q|silence|s|silent|none|n|0: for no message or exception- warn|w|warning|log|l|1: for a warning message (logging level CRITICAL, displayed by default)- error|e|exception|raise|r|2: for a raised exceptionExample:export GIT_PYTHON_REFRESH=quietThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "/usr/local/bin/bench", line 5, in <module>from bench.cli import cliFile "/usr/local/lib/python3.10/dist-packages/bench/cli.py", line 14, in <module>from bench.bench import BenchFile "/usr/local/lib/python3.10/dist-packages/bench/bench.py", line 36, in <module>from bench.utils.app import get_current_versionFile "/usr/local/lib/python3.10/dist-packages/bench/utils/app.py", line 17, in <module>from bench.app import get_repo_dirFile "/usr/local/lib/python3.10/dist-packages/bench/app.py", line 21, in <module>import gitFile "/home/www/.local/lib/python3.10/site-packages/git/__init__.py", line 298, in <module>raise ImportError("Failed to initialize: {0}".format(_exc)) from _exc
ImportError: Failed to initialize: Bad git executable.
The git executable must be specified in one of the following ways:- be included in your $PATH- be set via $GIT_PYTHON_GIT_EXECUTABLE- explicitly set via git.refresh(<full-path-to-git-executable>)All git commands will error until this is rectified.This initial message can be silenced or aggravated in the future by setting the
$GIT_PYTHON_REFRESH environment variable. Use one of the following values:- quiet|q|silence|s|silent|none|n|0: for no message or exception- warn|w|warning|log|l|1: for a warning message (logging level CRITICAL, displayed by default)- error|e|exception|raise|r|2: for a raised exceptionExample:export GIT_PYTHON_REFRESH=quiet

sudo apt install git

没有虚拟环境

www@erp:/opt$ bench init frappe-erpnext
Setting Up Environment
$ python3 -m venv env
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.apt install python3.10-venvYou may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.Failing command: /opt/frappe-erpnext/env/bin/python3subprocess.CalledProcessError: Command 'python3 -m venv env' returned non-zero exit status 1.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/home/www/.local/lib/python3.10/site-packages/bench/commands/make.py", line 75, in initinit(File "/home/www/.local/lib/python3.10/site-packages/bench/utils/render.py", line 105, in wrapper_fnreturn fn(*args, **kwargs)File "/home/www/.local/lib/python3.10/site-packages/bench/utils/system.py", line 66, in initbench.setup.env(python=python)File "/home/www/.local/lib/python3.10/site-packages/bench/utils/render.py", line 126, in wrapper_fnreturn fn(*args, **kwargs)File "/home/www/.local/lib/python3.10/site-packages/bench/bench.py", line 362, in envself.run(f"{venv} env", cwd=self.bench.name)File "/home/www/.local/lib/python3.10/site-packages/bench/bench.py", line 48, in runreturn exec_cmd(cmd, cwd=cwd or self.cwd, _raise=_raise)File "/home/www/.local/lib/python3.10/site-packages/bench/utils/__init__.py", line 178, in exec_cmdraise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: python3 -m venv envERROR: There was a problem while creating frappe-erpnext
Do you want to rollback these changes? [y/N]: y
INFO: Rolling back Bench "frappe-erpnext"

sudo apt install python3.10-venv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/34937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 3 搭建

1、jdk 17 2、spring boot 3.1.7 3、pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xs…

在线客服源码系统全端通用 源码完全开源可以二次开发 带完整的安装代码包以及搭建教程

系统概述 在线客服源码系统采用了先进的技术架构&#xff0c;包括前端界面、后端服务、数据库等部分。前端界面采用了响应式设计&#xff0c;能够自适应不同的设备屏幕尺寸&#xff0c;为用户提供良好的使用体验。后端服务采用了高性能的服务器架构&#xff0c;确保系统的稳定…

QT学习积累——在C++中,for循环中使用``与不使用``的区别和联系

目录 引出使用&与不使用&除法的一个坑 总结自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式返回值mutable修饰案例 引出 QT学习积累——在C中&#xff0c;for循环中使用&与不使用&的…

PointCloudLib (多线程)快速双边滤波 C++版本

0.实现效果 原始点云 和滤波后的点云对比 1.算法原理 PCL(Point Cloud Library)快速双边滤波是一种高效的点云数据滤波方法,它基于传统双边滤波算法进行了改进,通过引入近似方法加速计算过程。以下是关于PCL快速双边滤波的详细回答: 1. 基本原理 空间滤波:在点云中,相…

Verilog的逻辑系统及数据类型(一):四值逻辑系统

目录 1. Verilog采用的四值逻辑系统2.主要数据类型2.1 net&#xff08;线网&#xff09;2.2 寄存器类 &#xff08;register)2.3 Verilog中net和register声明语法2.3.1 net声明2.3.2 寄存器声明 2.4 选择正确的数据类型2.5 选择数据类型时常犯的错误2.5.1 信号类型确定方法总结…

【嵌入式DIY实例】-Nokia 5110显示BME280传感器数据

Nokia 5110显示BME280传感器数据 文章目录 Nokia 5110显示BME280传感器数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板(ESP12-E 模块)和 BME280 气压、温度和湿度传感器构建一个简单的本地气象站。 NodeMCU 从 BME280 传感器读取温度、湿度和压力值…

2024广东省职业技能大赛云计算赛项实战——集群部署GitLab Runner

集群部署GitLab Runner 前言 题目如下: 部署GitLab Runner 将GitLab Runner部署到gitlab-ci命名空间下&#xff0c;Release名称为gitlab-runner&#xff0c;为GitLab Runner创建持久化构建缓存目录/home/gitlab-runner/ci-build-cache以加速构建速度&#xff0c;并将其注册到…

【算法与数据结构】【字符串篇】【String的常见函数】

系列文章 本人系列文章-CSDN博客https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5502 1.string基本概念 string是C风格的字符串&#xff0c;而string本质上是一个类。 string和char * 区别&#xff1a; char * 是一个指针 string是一…

[Redis]缓存常见问题解决(缓存穿透、击穿、雪崩一文解决!通俗易懂、代码实战!手把手教你解决缓存问题三兄弟!)

Redis常见问题解决 要求 只用一种缓存技术&#xff0c;从实验点中挑一些试验进行试验原理。 1.缓存原理 目标&#xff1a;理解缓存的基本原理和工作机制。 实验步骤&#xff1a; 阅读各缓存技术机制的文档和官方资料。实现一个简单的应用程序&#xff0c;模拟数据的读写和…

音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介

音视频入门基础&#xff1a;H.264专题系列文章&#xff1a; 音视频入门基础&#xff1a;H.264专题&#xff08;1&#xff09;——H.264官方文档下载 音视频入门基础&#xff1a;H.264专题&#xff08;2&#xff09;——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

试析C#编程语言的特点及功能

行步骤&#xff0c;而不必创建新方法。其声明方法是在实例化委托基础上&#xff0c;加一对花括号以代表执行范围&#xff0c;再加一个分号终止语句。 2.3.3 工作原理 C#编译器在“匿名”委托时会自动把执行代码转换成惟一命名类里的惟一命名函数。再对存储代码块的委托进行设…

最热门的智能猫砂盆好不好用?这期统统告诉你!

身为上班族的我们&#xff0c;常常被工作和出差填满日程。忘记给猫咪铲屎也不是一次两次了。但我们必须意识到&#xff0c;不及时清理猫砂盆不仅会让猫咪感到不适&#xff0c;还可能引发泌尿系统感染、皮肤疾病等健康问题。为了解决这个问题&#xff0c;越来越多的铲屎官开始将…

快速上手golang(持续更新)

由于项目需要&#xff0c;我不得不快速掌握go语言来帮助我进行项目的开发。时间紧迫到我来不及去了解语言的特性就直接项目上手了。我决定就先熟悉一个主流的go框架和go语言的一些日常用法&#xff0c;之后就得滑着这只破船摇摇晃晃上路了。 1 基础命令 就说几个用的多的&…

【Linux】使用信号进行进程间通信

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ ​ 实现原理&a…

江苏隆昌化工上线隆道平台 采购管理迎来全面升级

当前&#xff0c;传统产业与数字产业深度加速融合&#xff0c;大数据、云计算、人工智能等新技术推动产业深刻变革&#xff0c;能源化工行业迎来战略转型加速期。数字化转型已成为能源化工企业提升运营效率、控制运营成本、提高产品质量、打造竞争优势的强大引擎。为实现传统采…

数据库管理-第213期 HaloDB-Oracle兼容性测试03(20240625)

数据库管理213期 2024-06-25 数据库管理-第213期 HaloDB-Oracle兼容性测试03&#xff08;20240625&#xff09;1 索引1.1 B-Tree索引1.2 Hash索引1.3 复合索引1.4 唯一索引1.5 表达式索引1.6 部分索引 2 视图3 表连接3.1 内连接3.2 左/右外连接3.3 全连接清理环境&#xff1a; …

Linux内核测试技术

Linux 内核是Linux操作系统的核心部分&#xff0c;负责管理硬件资源和提供系统调用接口。随着 Linux 内核的不断发展和更新&#xff0c;其复杂性和代码规模也在不断增加。因此&#xff0c;确保内核的稳定性和可靠性变得尤为重要。内核测试技术是实现这一目标的关键手段。本文将…

iptables配置NAT实现端口转发

加载防火墙的内核模块 modprobe ip_tables modprobe ip_nat_ftp modprobe ip_conntrack 1.开启路由转发功能 echo net.ipv4.ip_forward 1 >> /etc/sysctl.conf sysctl -p2、将本地的端口转发到本机端口 将本机的 7777 端口转发到 6666 端口。 iptables -t nat -A PR…

C# Winform 开源UI库

WinForms&#xff0c;作为微软.NET框架下的一个桌面应用程序开发工具&#xff0c;自1999年首次亮相以来&#xff0c;已经走过了二十多年的发展历程。它以其简单直观的拖拽式界面设计和丰富的控件库&#xff0c;成为了大众喜爱的入门学习编程工具。由于它是比较基础的开发工具&a…