conda进阶指南
conda基础
(base) ➜ python jiekezuoye conda env list
# conda environments:
#
base * /Users/wangcong/anaconda3
django_env /Users/wangcong/anaconda3/envs/django_env
django_xs /Users/wangcong/anaconda3/envs/django_xs
flask_env /Users/wangcong/anaconda3/envs/flask_env
myenv_fire /Users/wangcong/anaconda3/envs/myenv_fire
py2 /Users/wangcong/anaconda3/envs/py2
py38_base /Users/wangcong/anaconda3/envs/py38_base
py38_flink17_env /Users/wangcong/anaconda3/envs/py38_flink17_env
py39tf1 /Users/wangcong/anaconda3/envs/py39tf1
pyspark_env /Users/wangcong/anaconda3/envs/pyspark_env
pyt /Users/wangcong/anaconda3/envs/pyt
yolov5_env /Users/wangcong/anaconda3/envs/yolov5_env
conda activate 环境名称
conda activate django_xs
python manage.py runserver 8080
http://127.0.0.1:8080/
baijiahao.baidu.com/s?id=177063… IntelliJ IDEA设置前进后退三种方式 方法3:在界面显示
(1)Preferences -> Appearance & Behavior -> Menus and Toolbars -> Navigation Bar Toolbar -> Toolbar Run Actions,然后点击右侧的Add After... 按钮,选择Main menu -> Navigate -> 勾选Back 和Forward按钮。 blog.csdn.net/bit_bit/art…
环境克隆
conda activate py3_flask
conda env list > env.ini
conda activate py3_flask
pip list > py3_flask_env.ini
pip list > ppy3_spider_env.ini
pipreqs .
conda activate py3_spider
pip install -r requirements.txt
conda deactivate
conda create --name py2_flask --clone py2
conda create --name py2_flask2 --clone flask_env
conda create --name py3_flask --clone py38_base
conda create --name py3_spider --clone py38_base
conda env remove --name py2_flask
conda env remove --name py2_flask2
conda activate py2_flask
conda activate py2_flask2
conda activate py3_flask
conda activate py3_spider
pipreqs指南
pipreqs
是一个命令行工具,用于从 Python 项目中自动生成 requirements.txt
文件。它通过分析项目的源代码,找出项目中使用的第三方库,并列出这些库及其版本号,以便其他开发者或部署环境能够通过 pip install -r requirements.txt
命令安装相同的依赖。
以下是一些关于 pipreqs
的基本使用信息:
安装 pipreqs
你可以通过 pip 来安装 pipreqs
:
pip install pipreqs
使用 pipreqs
安装完成后,你可以在项目的根目录下运行以下命令来生成 requirements.txt
文件:
pipreqs /path/to/project
这里的 /path/to/project
是你的 Python 项目所在的目录路径。
选项
pipreqs
提供了一些选项来自定义生成 requirements.txt
的行为:
--force
或-f
:强制覆盖现有的requirements.txt
文件。--savepath
或-p
:指定输出requirements.txt
的路径。--use-local
或-l
:使用本地环境中的包版本,而不是从 PyPI 获取最新版本。--ignore
:忽略某些不需要包含在requirements.txt
中的包或文件。
例如,如果你想忽略某些特定的包,可以使用 --ignore
选项:
pipreqs /path/to/project --ignore=package1,package2
注意事项
pipreqs
可能无法检测到所有依赖,特别是那些通过环境变量或系统路径间接使用的包。- 它可能不会检测到那些在运行时动态导入的包。
- 使用
pipreqs
生成的requirements.txt
可能包含一些项目中未使用的包,因此在使用之前应该进行检查和清理。
pipreqs
是一个非常有用的工具,可以大大简化 Python 项目的依赖管理。
pipreqs
是一个流行的工具,用于自动生成 Python 项目的 requirements.txt
文件。它有一些特点和优势,与其他类似工具相比,以下是一些主要的:
-
自动检测依赖:
pipreqs
能够扫描项目代码,自动识别项目中使用的第三方库。 -
灵活性:它提供了多种命令行选项,允许用户自定义生成
requirements.txt
的行为,例如忽略特定包或使用本地包版本。 -
简洁的输出:
pipreqs
生成的requirements.txt
文件通常比较简洁,只包含项目实际使用的依赖。 -
易于使用:安装和使用
pipreqs
非常简单,只需一条命令即可在项目目录中生成依赖文件。 -
跨平台:
pipreqs
支持多个操作系统,包括 Windows、macOS 和 Linux。
与其他工具相比,pipreqs
的优势可能包括:
-
与
pip
的兼容性:pipreqs
生成的requirements.txt
可以直接用pip
命令安装,与pip
的兼容性非常好。 -
社区支持:作为一个广泛使用的开源工具,
pipreqs
拥有活跃的社区支持,用户可以轻松找到帮助和文档。 -
更新频率:
pipreqs
定期更新,以适应 Python 生态系统的变化和新版本的发布。
然而,每个工具都有其特定的使用场景和优势,以下是一些其他流行的依赖管理工具:
-
pip freeze
:这是一个内置的pip
命令,可以列出已安装的包及其版本,但它不会分析代码来找出实际使用的包。 -
Poetry
:这是一个依赖管理和打包工具,它使用pyproject.toml
文件来管理依赖,提供了更高级的功能,如依赖解析和包发布。 -
conda
:这是一个跨平台的包和环境管理器,特别适合用于科学计算项目,它可以管理 Python 包以及其他语言的库。 -
pipenv
:这是一个旨在将pip
和virtualenv
(一个用于创建隔离的 Python 环境的工具)的功能结合在一起的工具。
选择哪个工具取决于你的具体需求、项目类型和个人偏好。每个工具都有其特定的优势和局限性,因此了解它们的不同特点可以帮助你做出更好的选择。
pipreqs
是一个专注于从源代码中自动检测 Python 项目依赖的工具,但它可能不包括所有类型的依赖,例如那些通过环境变量或系统路径间接使用的包。以下是一些可以与 pipreqs
功能互补的工具:
-
pip freeze
:- 这个命令可以列出当前环境中安装的所有包及其版本号,但它不会分析代码来找出实际使用的包。
-
Poetry
:Poetry
是一个完整的依赖管理和打包工具,它使用pyproject.toml
和poetry.lock
文件来管理依赖。它可以自动检测依赖,并且提供了依赖解析和包发布的功能。
-
Pipenv
:Pipenv
旨在将pip
和virtualenv
的功能结合在一起,它使用Pipfile
和Pipfile.lock
来管理依赖。Pipenv
可以自动创建虚拟环境,并根据Pipfile
安装依赖。
-
conda
:conda
是一个流行的跨平台包和环境管理器,特别适合用于科学计算项目。它可以管理 Python 包以及其他语言的库,并且可以创建和维护多个环境。
-
requirements-parser
:- 这是一个 Python 库,可以解析
requirements.txt
文件,并且可以识别出其中的依赖关系和版本号。
- 这是一个 Python 库,可以解析
-
pipdeptree
:pipdeptree
可以显示已安装包的依赖树,帮助用户理解包之间的依赖关系。
-
pip-check
:pip-check
可以检查已安装的包是否有可更新的版本。
-
虚拟环境管理工具:
- 如
virtualenv
或venv
(Python 3.3+ 的内置虚拟环境工具),它们可以用来创建隔离的环境,确保依赖的一致性和项目的可移植性。
- 如
-
IDE 和代码编辑器插件:
- 许多集成开发环境(IDE)和代码编辑器(如 PyCharm、VSCode)提供了依赖管理和虚拟环境支持的插件或内置功能。
-
持续集成/持续部署(CI/CD)工具:
- 如 Jenkins、Travis CI、GitHub Actions 等,它们可以在自动化测试和部署过程中管理依赖。
使用这些工具的组合可以帮助你更全面地管理 Python 项目的依赖,确保项目的可维护性和可部署性。
截至我知识更新的时间点(2023年),以下是一些可能与 pipreqs
功能互补的新工具或更新的工具:
-
dephell deps
:dephell
是一个相对较新的工具,它提供了一个命令deps
来自动检测项目依赖,并且可以生成requirements.txt
。
-
pip-sync
:pip-sync
是pip
的一个命令,用于将requirements.txt
或Pipfile.lock
中列出的包与当前环境中安装的包同步。
-
pipdeptree
:- 虽然
pipdeptree
不是新工具,但它可以显示已安装包的依赖树,这有助于识别未使用的依赖,与pipreqs
互补。
- 虽然
-
pipenv
的更新:pipenv
持续更新,提供了更多的功能,如自动检测依赖和虚拟环境管理。
-
Poetry
的更新:Poetry
也在不断更新,提供了更先进的依赖解析和包管理功能。
-
conda
的更新:conda
作为跨平台的包和环境管理器,也在不断更新,增加了对 Python 项目依赖管理的支持。
-
IDE 和代码编辑器的新插件:
- 随着时间的推移,许多 IDE 和代码编辑器可能会推出新的插件,以更好地支持依赖管理和虚拟环境。
-
CI/CD 工具的新集成:
- 持续集成和持续部署工具可能会增加新的集成功能,以更好地支持依赖管理和自动化测试。
-
依赖审查工具:
- 一些新工具可能专注于依赖审查,帮助开发者识别安全漏洞或过时的依赖。
-
依赖更新工具:
- 一些工具可能专注于自动更新依赖到最新版本,同时确保兼容性。
请注意,由于软件工具领域不断发展,可能会有新的工具出现或现有工具获得新功能。因此,建议定期查看相关社区和资源,以了解最新的工具和最佳实践。
针对特定操作系统优化的工具通常是为了解决该系统特有的依赖管理、环境隔离或兼容性问题。以下是一些可能针对特定操作系统进行了优化或特别适配的工具:
-
Windows:
vcpkg
: 一个用于Windows的C++库管理器,可以安装和管理C++库及其依赖。WinGet
: Windows Package Manager,用于安装、更新和管理Windows应用程序。
-
macOS:
Homebrew
: macOS(和Linux)的包管理器,可以安装、更新和管理软件包,包括Python包。MacPorts
: 类似于Homebrew,但更专注于macOS,可以安装和管理软件包。
-
Linux:
apt
(Debian/Ubuntu): Linux发行版的包管理器,可以安装、更新和管理软件包。yum
或dnf
(Fedora/CentOS): 用于Red Hat系列Linux发行版的包管理器。pacman
(Arch Linux): Arch Linux的包管理器,以其简洁性和速度而闻名。
-
跨平台但具有特定系统优化:
conda
: 虽然是一个跨平台的包管理器,但它在Linux上特别强大,因为它可以管理系统级别的依赖。pipenv
和Poetry
: 这些工具在所有操作系统上都表现良好,但它们提供了虚拟环境管理,这对于Linux系统上的依赖隔离特别有用。
-
特定于开发环境的工具:
- Visual Studio Code 和 PyCharm 等IDE提供了针对特定操作系统的扩展和插件,以更好地支持依赖管理和项目配置。
-
容器化工具:
- Docker 和 Kubernetes 等工具可以在容器内创建一致的开发环境,这在某种程度上解决了操作系统特定的依赖问题。
-
特定语言或框架的工具:
- 某些语言或框架可能提供了自己的依赖管理工具,例如 Node.js 的 npm 或 Yarn,它们在不同操作系统上可能有不同的优化。
请注意,虽然有些工具可能在特定操作系统上有更好的表现或优化,但大多数现代工具都旨在跨平台工作,以确保开发者可以在任何操作系统上使用相同的工具链。如果你正在寻找特定于某个操作系统的优化工具,你可能需要查看该系统的社区论坛或文档,以获取最新的推荐和最佳实践。
pipenv
和 Poetry
是两个流行的Python依赖管理工具,它们都定期更新以修复错误、添加新功能和改进性能。更新频率可能会因以下因素而有所不同:
- 开发活动:如果开发团队活跃,更新可能会更频繁。
- 社区贡献:来自社区的贡献可以增加新功能和改进,从而可能增加更新频率。
- 依赖项的更新:依赖项的更新可能需要工具本身进行更新以保持兼容性。
- 安全问题:安全漏洞的发现可能会触发紧急更新。
- 重大功能更新:有时,重大的新功能或重构可能会引入较大的更新周期。
对于 pipenv
和 Poetry
,你可以查看它们的官方GitHub仓库或发布说明来了解最新的更新和版本历史。通常,这些工具的维护者会在发现问题或需要改进时发布更新,但具体的更新频率可能会根据上述因素而变化。
如果你想了解 pipenv
或 Poetry
的最新更新情况,你可以访问它们的GitHub仓库或官方网站,那里通常会有最新的发布日志和更新说明。例如:
pipenv
的GitHub仓库:github.com/pypa/pipenvPoetry
的GitHub仓库:github.com/python-poet…
在这些仓库中,你可以查看最近的提交、拉取请求和发布版本来了解更新的频率和内容。此外,你也可以订阅它们的更新通知,以便在有新版本发布时获得通知。
pipenv
和 Poetry
都是为Python项目设计的依赖管理工具,它们各有特点,适用于不同类型的项目和开发需求。对于大型项目,选择哪个工具更适合,通常取决于以下几个因素:
-
依赖管理:
Poetry
自动管理依赖项的版本,使用pyproject.toml
文件来声明依赖关系,这有助于避免版本冲突。pipenv
使用Pipfile
和Pipfile.lock
来锁定依赖项的版本,确保在不同环境中的一致性。
-
项目隔离:
pipenv
自动创建虚拟环境,确保项目依赖不会相互冲突。Poetry
也支持虚拟环境,并且可以更细致地控制依赖项的安装。
-
依赖解析:
Poetry
有一个强大的依赖解析器,可以更有效地处理复杂的依赖关系。
-
性能:
- 对于大型项目,依赖安装和更新的性能可能是一个考虑因素。
Poetry
在处理大型依赖树时可能表现更好。
- 对于大型项目,依赖安装和更新的性能可能是一个考虑因素。
-
易用性:
Poetry
提供了一个统一的命令行界面,用于管理依赖、构建和发布包。pipenv
与现有的pip
命令紧密集成,对于熟悉pip
的用户来说可能更易用。
-
社区和生态系统:
- 两个工具都有活跃的社区和不断增长的生态系统。查看社区反馈和案例研究可以帮助你了解哪个工具更适合大型项目。
-
扩展性和自定义:
- 如果你的项目需要特定的构建或发布流程,
Poetry
提供了更多的自定义选项。
- 如果你的项目需要特定的构建或发布流程,
-
安全性:
Poetry
通过pyproject.toml
文件提供了对依赖项的更严格控制,有助于维护项目的安全性。
-
文档和支持:
- 两个工具都有详细的文档,但是
Poetry
的文档可能更全面,对于大型项目的维护者来说可能更有帮助。
- 两个工具都有详细的文档,但是
-
兼容性:
- 考虑你的团队对工具的熟悉程度以及现有项目的兼容性。
总的来说,Poetry
由于其强大的依赖解析能力、统一的命令行界面和对大型项目的优化,可能更适合大型项目。然而,pipenv
由于其与pip
的紧密集成和易用性,对于一些团队来说可能仍然是一个不错的选择。
最终,选择哪个工具应该基于你的具体需求、团队的熟悉度以及项目的特定要求。在做出决定之前,最好在实际项目中测试两者,看看哪个更符合你的需求。
pipenv
和 Poetry
都是流行的Python依赖管理工具,它们在大型项目中各有优势和劣势。以下是一些基于这两个工具特性的一般性案例,用以说明它们在大型项目中的潜在优势和劣势:
pipenv 的优势:
- 与pip的兼容性:
pipenv
与pip
命令非常兼容,这意味着如果你的项目已经在使用pip
,那么迁移到pipenv
会相对容易。 - 简单性:对于已经熟悉
pip
的开发人员来说,pipenv
的学习曲线可能更平缓。 - 虚拟环境管理:
pipenv
自动创建和管理虚拟环境,这有助于保持项目依赖的隔离。
pipenv 的劣势:
- 依赖解析:
pipenv
在处理复杂的依赖关系时可能不如Poetry
强大。 - 性能问题:在大型项目中,
pipenv
在安装和更新依赖时可能会遇到性能瓶颈。 - 配置灵活性:
pipenv
在配置和自定义方面可能不如Poetry
灵活。
Poetry 的优势:
- 依赖解析:
Poetry
拥有一个强大的依赖解析器,能够更有效地处理大型项目的复杂依赖关系。 - 统一的工作流:
Poetry
提供了一个统一的命令行界面,用于依赖管理、构建和发布,这有助于简化开发流程。 - 依赖锁定:
Poetry
使用pyproject.toml
和poetry.lock
文件来锁定依赖项的版本,确保在不同环境中的一致性。 - 自定义和扩展性:
Poetry
允许更多的自定义选项,例如构建配置和发布流程。
Poetry 的劣势:
- 学习曲线:对于不熟悉
Poetry
的开发人员来说,可能需要一些时间来适应其工作流程。 - 生态系统兼容性:虽然
Poetry
的生态系统正在迅速增长,但某些特定的包或工具可能还没有完全兼容。 - 性能问题:尽管
Poetry
在依赖解析方面表现出色,但在某些情况下,它在处理非常大的依赖树时可能会遇到性能问题。
案例分析:
- 案例1:一个大型的开源项目,拥有多个子模块和复杂的依赖关系。在这种情况下,
Poetry
的强大依赖解析器和统一的工作流可能会带来优势,因为它可以更有效地管理这些复杂的依赖关系。 - 案例2:一个已经在使用
pip
和虚拟环境的项目,希望简化依赖管理。在这种情况下,pipenv
可能是一个更好的选择,因为它与pip
高度兼容,并且可以无缝集成到现有的工作流程中。
在选择工具时,重要的是考虑你的具体需求、团队的技能和项目的特定要求。实际的案例可能会有所不同,因此最好在实际项目中测试这两个工具,以确定哪个更适合你的具体情况。
Goland常用快捷键Mac版
光标跳转相关 光标快速跳转到方法,变量,结构体定义处 command + b
光标后退,前进-以步为单位移动 回退或者前进,就是上一次光标所在位置
回退到上一步光标位置处(退后) option + command + 方向键左键 或者 command + [
向最近回退的光标位置前进 option + command + 方向键右键 或者 command + ]
代码编辑窗口 一打开文件窗口切换 当前窗口切换为临近左侧文件 shift + command + [
当前窗口切换为临近右侧文件 shift + command + ]
光标快速跳转到当前代码块的前后,光标括号前后快速跳转 option + command + ] option + command + [ 窗口相关 代码编辑区最大化(显示/隐藏 除代码编辑去之外的所有窗口) shift + command + F12 或者 双击代码区的文件名
代码区域相关 快速展开/折叠 代码块 展开 command 和 +
折叠 command 和 -
全部展开/折叠 展开 command + shift 和 +
折叠 command + shift 和 -
文件相关 查看最近浏览过的文件 command + E
转载自:https://juejin.cn/post/7381372390305693707