Python 在 git bash 命令行中不起作用

2025-01-10 08:47:00
admin
原创
152
摘要:问题描述:Python 无法在 git bash(Windows)中运行。当我在命令行中输入 python 时,它会带我到一个空白行,而不会像在 Powershell 中那样提示已输入 python 2.7.10。它没有给我错误消息,但 python 就是不运行。我已经确保 PATH 中包含了环境变量c:py...

问题描述:

Python 无法在 git bash(Windows)中运行。当我在命令行中输入 python 时,它会带我到一个空白行,而不会像在 Powershell 中那样提示已输入 python 2.7.10。它没有给我错误消息,但 python 就是不运行。

我已经确保 PATH 中包含了环境变量c:python27。我还能检查什么?


发生此问题的会话如下所示:

user@hostname MINGW64 ~
$ type python
python is /c/Python27/python

user@hostname MINGW64 ~
$ python

...坐在那里,没有返回提示。


解决方案 1:

临时解决方案

只需在 Windows 上的 git shell 中输入此命令 -> 即可alias python='winpty python.exe',这样您就会获得 python 可执行文件的别名。此别名在 shell 会话期间有效。

winpty是一个 Windows 软件包,提供类似于 Unix pty-master 的接口,用于与 Windows 控制台程序进行通信。

永久解决方案

将命令添加到.bashrc用户主目录中。您可以使用 CLI 或文本编辑器:

使用 CLI

这可以通过 git bash 完成,如下所示:

echo "alias python='winpty python.exe'" >> ~/.bashrc

如果文件不存在,它将在当前用户主目录中创建该文件;如果.bashrc文件存在,它将别名附加到文件末尾。.bashrc

使用文本编辑器

或者,你可以先创建一个.bashrc。根据你的文件管理器,这可能更容易在 git bash 中完成,如下所示:

cd ~
touch .bashrc

此时您可以.bashrc在您喜欢的文本编辑器中打开并将其添加到那里。

要应用更改,请使用命令source .bashrc或重新启动 shell。

更新

Git 的新版本不再使用.bashrc而是使用.bash_profile。Conda 在初始化时也会使用此配置文件,因此请确保不要覆盖或删除初始化块。更多信息请参见:Windows 版 Git 无法执行我的 .bashrc 文件。

解决方案 2:

我没有在答案列表中看到下一个选项,但我可以使用“-i”键获得交互式提示:

$ python -i
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55)
Type "help", "copyright", "credits" or "license" for more information.
>>> 

解决方案 3:

这是 MSys2 中的一个已知错误,它提供了 Git Bash 使用的终端。您可以通过运行不支持 ncurses 的 Python 构建或使用WinPTY来解决此问题,用法如下:

要在 mintty 或 Cygwin sshd 中运行 Windows 控制台程序,请将 console.exe 添加到命令行前面:

$ build/console.exe c:/Python27/python.exe
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 + 20
30
>>> exit()

msys 的预构建二进制文件可能适用于 Git Bash。(如果自发布此答案以来已经过去了很长时间,请检查是否有更新的版本!)。


从适用于 Windows 2.7.1 的 Git 开始,也请尝试使用winpty c:Python27/python.exe;WinPTY 可能已包含在内。

解决方案 4:

我是 Windows 10 用户,我通过接受默认设置在我的系统中安装了GIT 。

阅读完以上答案后,我得到了 2 个自己的解决方案,这 2 个解决方案在GIT bash 上完美运行,并方便我在GIT bash上执行 Python 语句。

我附加了我的GIT bash 终端的 3 张图片。第一张表示问题,后两张表示解决方案。

问题python- 光标在输入命令后处于等待状态

在此处输入图片描述

解决方案 1

在GITwinpty <path-to-python-installation-dir>/python.exe bash 终端上执行。

注意:在GIT bash 中不要使用C:UsersAdmin类似路径样式,而是使用。/C/Users/Admin

就我而言,我在GIT bashwinpty /C/Users/SJV/Anaconda2/python.exe上执行了命令

或者如果你不知道你的用户名那么执行winpty /C/Users/$USERNAME/Anaconda2/python.exe

在此处输入图片描述

解决方案 2

只需输入python -i即可。

在此处输入图片描述

谢谢。

解决方案 5:

尝试一下,python -i而不是python,这是一个光标的事情。

解决方案 6:

Git Bash 解决方法-使用别名启动 Python 2 和 Python 3

你好。对我来说,这是在 Win 10 上直接从 Git Bash 运行 Python(Python 2.7 和 Python 3.x)的最佳解决方案 => 将别名添加到 Git Bash 使用的别名文件中。

Git Bash 别名文件aliases.sh它位于:

C:path where you installed Gitetcprofile.daliases.sh

1)使用 Atom 或其他文本编辑器打开 aliases.sh

例如:就我而言,文件位于 C:SoftwareDevelopGitetcprofile.daliases.sh

2)添加 Python 别名

就我而言,python.exe安装在:

C:NetworkingNetwork AutomationPython 2.7python.exe
C:NetworkingNetwork AutomationPython 3.7python.exe

因此,您必须创建 2 个别名,一个用于 Python 2我将其命名为python2),另一个用于 Python 3我将其命名为python)Git Bash 使用 linux 文件结构,因此您需要将“\”更改为“/”**
,如果您有一个像我的示例网络自动化这样的路径,您可以将它放在“ ”

例如“网络自动化

winpty 是调用可执行文件的神奇命令。

因此在aliases.sh的开头添加以下几行

alias python2='winpty C/Networking/"Network Automation"/"Python 2.7"/python.exe'
alias python='winpty C/Networking/"Network Automation"/"Python 3.7"/python.exe'

3)添加或修改其他别名(如果需要)

我还修改了ll别名以显示所有文件并形成一个人类可读的列表:

alias ll='ls -lah'

4)保存 aliases.sh 文件


5)OK!关闭并重新启动 Git Bash

现在,你可以直接从 Git shell 启动这两个 Python 了,只需输入

$ python -> 启动 Python 3

$ python2 -> 启动 Python 2

$ ll -> 输入 ls -lah 快速显示详细文件列表

干杯,哈利

解决方案 7:

2 个解决方法,而不是解决方案:在我的 Git Bash 中,以下命令挂起并且我没有收到提示:

% python

所以我只使用:

% winpty python

正如上面一些人所指出的,您还可以使用:

% python -i

2020-07-14:Git 2.27.0 增加了对伪控制台的可选实验性支持,允许从命令行运行 Python:
在此处输入图片描述

参见附件会话。在此处输入图片描述

解决方案 8:

除了 @Charles-Duffy 的回答之外,您还可以直接使用 winpty,而无需安装/下载任何额外内容。只需运行winpty c:/Python27/python.exe。实用程序 winpty.exe 可以在 Git/usr\bin 中找到。我正在使用 Git for Windows v2.7.1

@Charles-Duffy 预构建的二进制文件版本为 0.1.1(根据文件名),而包含的二进制文件版本为 0.2.2

解决方案 9:

更新:几秒钟前我刚刚安装了最新的 Windows 版 Git,现在他们有一个复选框可以勾选以修复winptyGit Bash 中的 Python 问题!请参见此处:

在此处输入图片描述

不过,我仍然建议执行以下步骤:


原始的,可能更可靠的答案:

这还包括在 Windows 中配置 Git Bash 以允许以python3(像在 Linux 中一样) 方式运行 Python,以及以 (像在 Linux 中一样) 方式运行 Python 脚本./myProgram.py,同时使用 Linux 风格的哈希符号(例如在 Windows#!/usr/bin/env python3Linux Python 脚本的顶部)。

Python 无法在 Git Bash 中运行(它会一直挂起或冻结);如何让 Linux hash-bang 在 Windows 中运行

请注意,当我尝试运行 Python 时 Git Bash 冻结,我无法使用Ctrl+CCtrl+将其终止D。我必须关闭 Git Bash 终端才能将其终止。:(

对于那些从 Linux 转到 Windows 的人来说,您可能还习惯于python3在命令行中调用,并在 Python 文件顶部使用井号,如下所示:

#!/usr/bin/env python3

...这样您就可以使用 使文件可执行chmod +x my_script.py,然后直接以 方式运行它./my_script.py,而不必使用python3 my_script.py

因此,让我们解决上述所有问题。

快速摘要:

  1. 将这两个别名和此 PATH 修复添加到文件底部,~/.bashrc以便您可以在 Git Bash 中运行python或交互:python3

alias python='winpty python'
alias python3='winpty python'

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
  1. 添加此~/bin/python3可执行包装器,以便您可以#!/usr/bin/env python3在 Python 脚本中使用哈希爆炸:

#!/usr/bin/env bash

winpty python "$@"
  1. 关闭并重新打开所有 Git Bash 终端,或. ~/.bashrc在每个终端内调用。然后:

# ensure your aliases exist
alias python   # expected output: `alias python='winpty python'`
alias python3  # expected output: `alias python3='winpty python'`

# ensure your `python3` executable exists
which python3  # expected output: `/c/Users/myusername/bin/python3`
  1. 测试:

# Both of these open Python 3 interactively
# - then type `exit()` to exit
python
python3

对于此hello_world.py脚本:

#!/usr/bin/env python3

print("Hello world.")

以下都运行它:

# all 3 of these run `hello_world.py` in Python 3
# 1. Windows style
python hello_world.py 
# 2. Linux style
python3 hello_world.py 
# 3. Hash-bang Linux style
./hello_world.py 

如果您理解了这些,并且您已完成所有操作,那么您就大功告成了。否则,请继续阅读以了解更多详细信息和信息,包括故障排除。

细节

步骤 1:在 Git Bash 终端中以交互方式创建python并可用python3

首先,为了在 Git Bash 终端中python以交互方式工作且不会永远挂起或冻结,请运行以下命令:python3

# Add interactive `python` and `python3` aliases. 
# - NB: it is *not* a mistake that both aliases point to `python`. That is how
#   it is supposed to be!
echo -e "
" >> ~/.bashrc
echo "alias python='winpty python'" >> ~/.bashrc
echo "alias python3='winpty python'" >> ~/.bashrc

这相当于创建一个~/.bashrc文件并在其底部添加这些别名:

alias python='winpty python'
alias python3='winpty python'

现在关闭并重新打开你的 Git Bash 终端以引入这些更改。

现在,您可以在 Git Bash 终端中以交互方式运行python或。 太棒了! 有关为什么需要通过 进行调用,请参阅@VonC 的回答:python3`python`winpty

Winpty 是一个兼容层,允许您从 Linux 终端运行 Windows 控制台应用程序。

  • 当您从 Linux 交叉编译 Windows 程序时,生成的二进制文件将是一个 Windows 控制台应用程序,可以直接从 Linux 终端运行,而无需winpty

  • 但是,如果您在 Windows 上本地构建程序,则生成的二进制文件将是无法从 Linux 终端运行的 Windows GUI 应用程序。

为了从 Linux 终端运行 Windows GUI 应用程序,您需要使用winpty

第 2 步:让#!/usr/bin/env python3hash-bang 也能发挥作用

为了使其正常工作,我们需要~/bin/python3在 PATH 中添加自定义的可执行 Bash 包装器。

打开您的~/.bashrc文件并将其添加到其底部,~/bin如果该目录存在则自动添加到我们的路径中:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

创建~/bin目录:

mkdir -p ~/bin

重新获取~/.bashrc文件,或者关闭并重新打开所有 Git Bash 终端。如果您不知道“source”是什么意思,请阅读我的回答:source 和 export 有什么区别?。

. ~/.bashrc

现在在路径处创建一个文件~/bin/python3,并将其粘贴到其中。完成后保存并关闭文件。

#!/usr/bin/env bash

winpty python "$@"

确保它是可执行的:

chmod +x ~/bin/python3

现在,创建一个测试文件。创建一个名为的文件hello_world.py,并将以下内容粘贴到其中:

#!/usr/bin/env python3

print("Hello world.")

使文件可执行,并直接运行它:

# make it executable
chmod +x hello_world.py

# run it
./hello_world.py 

你会看到:

你好世界。

完成!您现在有 3 种方法可以运行此脚本!:

# 1. Windows style
python hello_world.py 

# 2. Linux style
python3 hello_world.py 

# 3. Hash-bang Linux style
./hello_world.py 

这一切是如何运作的?

这一切究竟如何运作有点棘手。

首先,当您手动运行pythonpython3独自运行以获取交互式会话或python hello_world.py运行python3 hello_world.py文件时,它会访问~/.bashrc文件中定义的 Bash 别名并运行winpty python。这是在 Git Bash 中调用正常工作所必需的,原因已在此处 @VonC 的回答中解释。

Bash 别名当用户(例如您自己)直接在 Git Bash 终端中运行别名时才可用。它们不适用于系统或系统启动的任何其他进程。因此,当您运行 时./hello_world.py#!/usr/bin/env python3hash-bang不会查找并运行您的python3别名。相反,它会查找并运行您的~/bin/python3可执行 Bash 包装器,该包装器还会根据需要通过 执行 Python 调用winpty

故障排除:如果未正确执行上述操作,您可能会看到各种错误

  1. 问题:在 Git Bash 终端中运行python或永远挂起python3

解决方案:您忘记添加调用 的两个别名winpty python。请添加它们。

  1. 问题:运行python3会打开 Microsoft Store 并尝试安装 Python。

解决方案:您忘记创建alias python3='winpty python'别名。

  1. 问题:Hash-bang 不起作用。Running./hello_world.py说:

未找到 Python;无需参数运行即可从 Microsoft Store 安装,或者从“设置”>“管理应用执行别名”禁用此快捷方式。

解决方案:您忘记创建~/bin/python包装器可执行文件。如果您已创建它,请确保它是可执行文件。如果这两件事都已完成,请确保~/bin它在您的 PATH 中。请参阅上文以添加代码块来~/.bashrc执行此操作。

  1. 问题:Hash-bang 不起作用。Running./hello_worl.py说:

/usr/bin/env:‘python3’:没有这样的文件或目录

关闭您的python.exepython3.exeWindows“应用程序执行别名”,如此处所述,但您尚未创建~/bin/python包装器可执行文件。

解决方案:您忘记创建~/bin/python包装器可执行文件。如果您已创建它,请确保它是可执行文件。如果这两件事都已完成,请确保~/bin它在您的 PATH 中。请参阅上文以添加代码块来~/.bashrc执行此操作。

  1. 问题:你得到这个:

`winpty:错误:无法启动““C:/Program Files/WindowsApps/Microsoft.DesktopAppInstaller_1.20.1881.0_x64__8wekyb3d8bbwe/AppInstallerPythonRedirector.exe””:访问被拒绝。(错误 0x5)

解决方案:

老实说,我现在不记得我是怎么得到这个错误的,但这是我偶然发现的众多错误之一,直到我找到上面的答案中解释的解决方案。

其他参考

  1. 我从@Vitaliy Terziev 的回答alias python='winpty python.exe'中了解了别名。

    1. winpty也是 MSYS2(Git Bash 使用的底层系统的制造商)推荐的,位于此页面底部:https: //www.msys2.org/wiki/Terminals/

参见

  1. 我的回答:更改Windows 安装的 Git Bash 目录的位置~

解决方案 10:

您可以从以下位置更改 Git Bash 快捷方式的目标:

"C:Program FilesGitgit-bash.exe" --cd-to-home 

"C:Program FilesGitgit-cmd.exe" --no-cd --command=usr/bin/bash.exe -l -i

这是 ConEmu 启动 git bash(版本 16)的方式。最新版本可以正常启动,我就是这样做到的...

解决方案 11:

输入:'winpty python' 它就会起作用

gitbash 在运行以 python 开头的任何命令时都会出现一些问题。这也适用于任何 python manage.py 命令。始终以“winpty python manage.py”开头,至少这对我有用。运行 Windows 10。

解决方案 12:

除了@Vitaliy Terziev 的回答

尝试touch .bash_profile然后将别名添加到文件中。

解决方案 13:

我在 Windows 10 上通过 Visual Studio Code 使用 MINGW64 并尝试安装node-sass(需要python2)。我按照Github 上的felixrieseberg/windows-build-tools #56操作,解决了我的问题。

这是一个特例,但我发布此帖子以防有人遇到同样的问题:

npm --add-python-to-path='true' --debug install --global windows-build-tools

这将安装 Python 和其他所需的构建工具%USERPROFILE%.windows-build-toolspython27

解决方案 14:

对于 vscode 中以 gitbash 作为默认终端的 python 版本 3.7.3,我处理了这个问题一段时间,然后按照@Vitaliy Terziev 的建议将别名添加到 .bashrc,但遵循以下规范:

alias python='“/c/Users/我的用户名/AppData/Local/Programs/Python/Python37/python.exe”'

由于“我的用户名”空格,请注意单引号和双引号的组合。

对我来说,“winpty”无法解析 vscode 中的 python 路径。

解决方案 15:

键入命令 PY 而不是 Python。调用解释器 (python.org)。

解决方案 16:

我知道这是一篇老帖子,但我刚刚在运行 Python 3.8.5 和 Git 2.28.0.windows.1 的 Windows 10 上遇到了这个问题

不知何故,我也安装了几个不同的 2.7x 版本的 Python。我删除了每个版本的 Python(3x 和 2x),从此处下载了官方安装程序,安装了全新的 3.8.5(仅使用默认值),它将 Python 3.8.5 安装在以下位置:

C:\Users\(我的用户名)\AppData\Local\Programs\Python\Python38

然后,为了让命令python在我的 git bash shell 中工作,我必须按照此处Python38列出的说明手动将路径添加到我的路径变量中。这一点很重要,因为在出​​现的第一个模式底部的 python 安装程序上,它会询问您是否要将 python 路径添加到您的环境变量中。我单击了旁边的复选框,但它实际上并没有添加路径,因此需要手动将路径添加到我的环境变量中。PATH`PATH`

现在使用我的 gitbash shell,我可以浏览到其中包含 python 脚本的目录,只需输入即可python theScriptName.py运行,没有问题。

我想发布这篇文章,因为这就是我让 gitbash shell 允许我运行 python 脚本所要做的全部工作。我认为可能有一些更新,所以我不需要执行此处列出的任何其他解决方案。无论如何,如果您在 Windows 10 计算机上的 gitbash shell 中运行 python 脚本时遇到问题,这是另一个值得尝试的方法。

享受。

解决方案 17:

此问题的另一个示例是使用 Windows 中 git bash(MINGW64、Mintty)中的 AWS Elastic Beanstalk 命令行界面(awsebcli、eb cli)(使用 git 版本 2.19.0.windows.1)。

我发布这个只是因为我花了一段时间才来到这里搜索eb-cli具体的问题。

eb init或等eb config save需要用户输入的命令似乎会导致冻结/挂起。实际上,我猜控制台没有使用请求用户输入的文本进行更新。此外,eb deploy仅在命令完成后才更新控制台文本,因此在完成之前我看不到进度更新。

正如git for windows 发行说明(针对 v2.19.0)中提到的那样,以及在Xun Yang 的回答中,一种解决方法是运行

winpty eb <command>(而不仅仅是eb <command>

正如这个git for windows 问题中所建议的,另一种选择是使用 windows 原生控制台而不是 mintty(git 安装期间的选项)。

解决方案 18:

对我有用的方法就像上面这些很棒的答案中提到的那样,别名如下:(我正在使用 anaconda,所以首先找到 python 路径在哪里,然后将其添加到 git bash 上的别名中)。1. 在 anaconda 终端上运行:where python

  1. 在 git bash 上运行:alias python='winpty "C:ProgramDataAnaconda3envsyour_env_namepython.exe"'

  2. 完成。使用别名在 git Bash 内部定义 Python。

感谢(Vitaliy Terziev 和 hygull)提供的非常有用的答案。

解决方案 19:

  1. python.exe -i可以工作,但发送“^Z”(CTRL+Z)退出交互模式时出现问题。因此,似乎更适合winpty python.exe在 Windows 版 Git Bash 中使用。

  2. 使用~/bin目录创建一个包装/引用文件(如~/bin/python),该文件可在任何地方访问(您可以使用不同版本的引用,如~/bin/python37)。

文件中的代码:

#!/usr/bin/env bash
# maybe declare env vars here like
# export PYTHONHOME=/c/Users/%USERNAME%/.python/Python36
# export PATH="${PATH}:/c/Users/%USERNAME%/.python/Python36"

# replace %USERNAME%,
# or use "~" instead of "/c/Users/%USERNAME%" if it works
winpty /c/Users/%USERNAME%/.python/Python36/python.exe ${@}

我只是不喜欢这些“神奇的”别名,你总是忘记它来自哪里,有时在某些情况下会导致问题。

  1. 使用~/bin/python文件及-i参数:

#!/usr/bin/env bash
if [ -z "${@}" ]; then
    # empty args, use interactive mode
    /c/Users/%USERNAME%/.python/Python36/python.exe -i
else
    /c/Users/%USERNAME%/.python/Python36/python.exe ${@}
fi

解决方案 20:

如果运行 Windows PowerShell 命令并且发生错误,则错误记录将附加到名为的“自动变量”中$error

您可以在同一个 PowerShell 会话中使用该$error变量来查找错误。

$Error变量保存了一组信息,这就是为什么使用$Error[0]可以获取错误消息对象的原因。此外,该$Error[0]变量将保存遇到的最后一条错误消息,直到 PowerShell 会话结束。

解决方案 21:

如果您使用uv来管理 Python,则应该采用winpty其他答案中建议的解决方案。

要运行 Python shell,请使用:winpty uv run which python``

为了更轻松地运行它,您可以创建一个别名(我建议将此行添加到您的.bash_profile文件中),例如,如果您想运行uvp以使用 uv 管理的 Python 版本打开 Python shell,请使用:alias uvp='winpty uv run which python'

解决方案 22:

我将其放在python脚本中:

#!winpty /c/Program Files/Python312/python

现在我可以通过输入从 bash(从 GIT)运行脚本<name of script>.py

解决方案 23:

看看这个答案:

Git Bash 无法运行我的 python 文件?

Git Bash 中的路径应该这样设置:

PATH=$PATH:/c/Python27/
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用