本文共 8809 字,大约阅读时间需要 29 分钟。
如果您是Python开发人员和Mac用户,那么在购买新计算机时的首要任务之一就是设置您的Python开发环境。 这是最好的方法(尽管我们已经写了 )。
首先,打开一个终端并在其冷漠的提示下输入xcode-select --install 。 单击确认,您将设置一个基本的开发环境。 在MacOS上,必须执行此步骤才能设置本地开发实用程序,包括“许多常用的工具,实用程序和编译器,包括make,GCC,clang,perl,svn,git,size,strip,string,libtool,cpp,而通常在默认Linux安装中发现,很多其他有用的命令”,根据 。
接下来,通过从Internet执行以下Ruby脚本来安装 :
ruby -e " $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) "
如果像我一样,您对从互联网上任意运行的脚本有信任问题,请单击上面的脚本,再仔细看一下它的功能。
祝贺您,完成此操作后,您将在Homebrew中拥有出色的软件包管理工具。 天真地,您可能会认为您下一个brew安装python之类的东西。 不,哈哈 Homebrew将为您提供Python版本,但是如果您让该工具为您管理环境,那么您获得的版本将不受控制。 您需要 (一种用于简单Python版本管理的工具),可以将其安装在 。 跑:
$ brew install pyenv
您希望pyenv每次打开提示符时都运行,因此在配置文件中包含以下内容(在MacOS上默认为,主目录中为.bash_profile ):
$ cd ~ / $ echo 'eval "$(pyenv init -)"' >> .bash_profile
通过添加此行,每个新终端都将启动pyenv来管理终端中的PATH环境变量,并插入要运行的Python版本(与环境中显示的第一个相反)。有关更多信息,请阅读“ 。”)打开新终端,使更新的.bash_profile生效。
在安装您喜欢的Python版本之前,您需要安装一些有用的工具:
$ brew install zlib sqlite
压缩算法和数据库是pyenv的依赖项,如果配置不正确,通常 。 将这些导出添加到当前的终端窗口中,以确保安装完成:
$ export LDFLAGS = "-L/usr/local/opt/zlib/lib -L/usr/local/opt/sqlite/lib" $ export CPPFLAGS = "-I/usr/local/opt/zlib/include -I/usr/local/opt/sqlite/include"
现在已经完成了准备工作,是时候安装适合现代人的Python版本了:
$ pyenv install 3.7.3
去喝杯咖啡。 从豆中手工烘烤。 选择它们之后。 我在这里说的是要花一些时间。
完成后,就该使您的虚拟环境易于使用了。 没有下一步,您将有效地为您从事的每个项目共享一个Python开发环境。 使用虚拟环境在每个项目的基础上隔离依赖项管理,将为我们提供比Python开箱即用的更多确定性和可重复性。 由于这些原因,请将virtualenvwrapper安装到Python环境中:
$ pyenv global 3.7.3 # Be sure to keep the $() syntax in this command so it can evaluate $ $ ( pyenv which python3 ) -m pip install virtualenvwrapper
再次打开您的.bash_profile并添加以下内容,以确保每次打开新终端时它都能正常工作:
# We want to regularly go to our virtual environment directory $ echo 'export WORKON_HOME=~/.virtualenvs' >> .bash_profile # If in a given virtual environment, make a virtual environment directory # If one does not already exist $ echo 'mkdir -p $WORKON_HOME' >> .bash_profile # Activate the new virtual environment by calling this script # Note that $USER will substitute for your current user $ echo '. ~/.pyenv/versions/3.7.3/bin/virtualenvwrapper.sh' >> .bash_profile
关闭终端并打开一个新终端(或运行exec / bin / bash -l刷新当前终端会话),您将看到virtualenvwrapper初始化环境:
$ exec / bin / bash -l virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / premkproject virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / postmkproject virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / initialize virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / premkvirtualenv virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / postmkvirtualenv virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / prermvirtualenv virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / postrmvirtualenv virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / predeactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / postdeactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / preactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / postactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / get_env_details
从现在开始,您的所有工作都应该在虚拟环境中,以便您可以使用临时环境安全地进行开发。 使用此工具链,您可以设置多个项目并在它们之间切换,具体取决于您当时正在从事的工作:
$ mkvirtualenv test1 Using base prefix '/Users/moshe/.pyenv/versions/3.7.3' New python executable in / Users / moshe / .virtualenvs / test1 / bin / python3 Also creating executable in / Users / moshe / .virtualenvs / test1 / bin / python Installing setuptools, pip, wheel... done. virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test1 / bin / predeactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test1 / bin / postdeactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test1 / bin / preactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test1 / bin / postactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test1 / bin / get_env_details ( test1 ) $ mkvirtualenv test2 Using base prefix '/Users/moshe/.pyenv/versions/3.7.3' New python executable in / Users / moshe / .virtualenvs / test2 / bin / python3 Also creating executable in / Users / moshe / .virtualenvs / test2 / bin / python Installing setuptools, pip, wheel... done. virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test2 / bin / predeactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test2 / bin / postdeactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test2 / bin / preactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test2 / bin / postactivate virtualenvwrapper.user_scripts creating / Users / moshe / .virtualenvs / test2 / bin / get_env_details ( test2 ) $ ls $WORKON_HOME get_env_details postmkvirtualenv premkvirtualenv initialize postrmvirtualenv prermvirtualenv postactivate preactivate test1 postdeactivate predeactivate test2 postmkproject premkproject ( test2 ) $ workon test1 ( test1 ) $
deactivate命令使您退出当前环境。
您可能已经在〜/ src之类的目录中设置了长期项目。 当您开始处理新项目时,请进入该目录,为该项目添加一个子目录,然后使用Bash解释的功能根据您的目录名来命名虚拟环境。 例如,对于名为“ pyfun”的项目:
$ mkdir -p ~ / src / pyfun && cd ~ / src / pyfun $ mkvirtualenv $ ( basename $ ( pwd ) ) # we will see the environment initialize ( pyfun ) $ workon pyfun test1 test2 ( pyfun ) $ deactivate $
每当您要处理此项目时,请返回该目录并通过输入以下内容重新连接到虚拟环境:
$ cd ~ / src / pyfun ( pyfun ) $ workon .
由于初始化虚拟环境意味着要获取Python版本和已加载模块的时间点副本,因此您有时会希望刷新项目的虚拟环境,因为依赖关系可能会发生巨大变化。 您可以通过删除虚拟环境来安全地执行此操作,因为源代码将保持不变:
$ cd ~ / src / pyfun $ rmvirtualenv $ ( basename $ ( pwd ) ) $ mkvirtualenv $ ( basename $ ( pwd ) )
这种使用pyenv和virtualwrapper管理虚拟环境的方法可避免您在本地开发代码时不确定正在运行哪个版本的Python。 这是避免混乱的最简单方法,尤其是在与更大的团队合作时。
如果您刚刚开始配置Python环境,请阅读如何上使用 。 您还有其他初学者或中级Python问题吗? 发表评论,我们将在下一篇文章中考虑它们。
翻译自:
转载地址:http://ntbzd.baihongyu.com/