MAC笔记本里Spyder python 的安装问题 和 虚拟环境VENV的创建

2023-12-07 05:01

本文主要是介绍MAC笔记本里Spyder python 的安装问题 和 虚拟环境VENV的创建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

芙Spyder 作为python的开发环境还是很好用的,在MAC笔记本里直接下载Spyde安装即可。

安装完成以后目录在:

/Applications/Spyder.app/Contents 

此目录下有几个子目录如下:

Frameworks        Info.plist    MacOS    PkgInfo    Resources      _CodeSignature

其中可执行文件Spyder和python在MacOS的子目录下;

资源包都在Resouces子目录下

如果在MacOS目录下执行python命令,会出现报错;但是在Spyder的GUI界面里运行python代码是没问题的。

./python

Could not find platform independent libraries <prefix>

Could not find platform dependent libraries <exec_prefix>

Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]

Python path configuration:

  PYTHONHOME = (not set)

  PYTHONPATH = (not set)

  program name = './python'

  isolated = 0

  environment = 1

  user site = 1

  import site = 1

  sys._base_executable = '/Applications/Spyder.app/Contents/MacOS/python'

  sys.base_prefix = '/Users/runner/hostedtoolcache/Python/3.9.14/x64'

  sys.base_exec_prefix = '/Users/runner/hostedtoolcache/Python/3.9.14/x64'

  sys.platlibdir = 'lib'

  sys.executable = '/Applications/Spyder.app/Contents/MacOS/python'

  sys.prefix = '/Users/runner/hostedtoolcache/Python/3.9.14/x64'

  sys.exec_prefix = '/Users/runner/hostedtoolcache/Python/3.9.14/x64'

  sys.path = [

    '/Users/runner/hostedtoolcache/Python/3.9.14/x64/lib/python39.zip',

    '/Users/runner/hostedtoolcache/Python/3.9.14/x64/lib/python3.9',

    '/Users/runner/hostedtoolcache/Python/3.9.14/x64/lib/lib-dynload',

  ]

Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding

Python runtime state: core initialized

ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007ff8544c7700 (most recent call first):

原因是 PYTHONHOME没设置,可以通过对环境变量PYTHONHOME设置来解决这个问题。

MAC下的zsh terminal的环境配置文件在/Users/用户名/.zshrc。 (用户级的环境文件)

使用vim编辑.zshrc文件

vim ~/.zshrc

在文件末尾输入:

export PYTHONHOME=/Applications/Spyder.app/Contents/Resources

保存后,再执行:

source ~/.zshrc

通过export命令查看环境变量里是否有PYTHONHOME的设置,如果设置成功,那么可以解决上述问题。

 另外,如果用的是bash,可以编辑 ~/.bash_profile (/etc/profile对所有用户生效,~/.bash_profile只对当前用户生效。

另外环境变量PATH的配置命格式:

export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>

虚拟环境VENV的介绍:

python3.3以后安装包自带VENV工具,可以用来配置python虚拟环境

虚拟环境的主要使用场景是:如果有两个不同的project需要用到同一个包package的不同版本,比如project1用到version1,project2用到version2。那么需要给不同project安装不同的版本。

具体用法:此时就需要用到VENV,

在project1的目录下执行命令:

python3 -m venv .venv

此时在目录下会创建一个.VENV的子目录,包含以下文件/文件夹:

bin    include     lib     pyvenv.cfg

其中bin文件夹下:python,pip 等可执行文件

lib文件夹下: 有site-packages,里面的包几乎为空

从上面可以看出,VENV工具基于已经安装的python环境,从中选取一些必须的文件,安装到这个project的当前目录下的.venv目录下,创建了一个封闭的运行环境,里面有必须的python命令和site-packages。

然后用户在当前目录下再执行下面命令,激活虚拟环境,

source .venv/bin/activate

此时再使用pip安装当前project需要的packages。例如下面命令,可以指定需要安装的packages的版本:

python3 -m pip install 'requests==2.18.4'

这个package会被安装在当前工程的目录下面的.venv下的site-packages子目录里,这样就不会和别的project共享package,实现了文件隔离。

在project的当前目录下执行下面命令,可以关闭虚拟环境:

deactivate

附上python官网对于虚拟环境操作说明如下:

Install packages in a virtual environment using pip and venv - Python Packaging User Guide

linux/MACos下pip的安装:

  • 方法一:

  • Download the script, from https://bootstrap.pypa.io/get-pip.py.

  • python get-pip.py

  • 方法二:

  • python -m ensurepip --upgrade
  • pip升级  
    python -m pip install --upgrade pip

这篇关于MAC笔记本里Spyder python 的安装问题 和 虚拟环境VENV的创建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464558

相关文章

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert