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

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

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

相关文章

【算法】链表-20231124

这里写目录标题 一、83. 删除排序链表中的重复元素二、206. 反转链表三、234. 回文链表 一、83. 删除排序链表中的重复元素 简单 1.1K 相关企业 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例…

Mybatis 使用枚举作为查询条件

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

(4)BUUCTF-web-[极客大挑战 2019]EasySQL1

前言&#xff1a; 觉得这个题目挺有意义的&#xff0c;因为最近在学数据库&#xff0c;但是不知道在现实中有什么应用&#xff0c;所以学起来也没有什么兴趣&#xff0c;做了这个题目&#xff0c;发现数据库还是挺有用处的&#xff0c;哈哈 知识点&#xff1a; mysql 中and和…

速记:一个保险丝检测电路

一个保险丝检测电路 保险丝熔断&#xff1a;红灯亮 保险丝正常&#xff1a;绿灯亮 同样的&#xff0c;仿真中的指示灯可以换成其他指示器件。

PTA-2023年软件设计综合实践_9(动态规划法)

7-1 数塔 数塔如图所示&#xff0c;若每一步只能走到相邻的结点&#xff08;图中有数字的方格&#xff09;&#xff0c;则从最顶层走到最底层所经过的所有结点的数字之和最大是多少&#xff1f;测试数据保证结果不大于231−1。 C #include <bits/stdc.h> using namespa…

python每日一题——14合并区间

题目 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输入&#xff1a;intervals …

AIGC:文本生成视频

项目1&#xff1a;GitHub - ai-forever/KandinskyVideo: KandinskyVideo — multilingual end-to-end text2video latent diffusion model 效果未知

IDEA插件:Apipost Helper使用

Apipost-Helper是由Apipost推出的IDEA插件&#xff0c;写完接口可以进行快速调试&#xff0c;且支持搜索接口、根据method跳转接口&#xff0c;还支持生成标准的API文档&#xff0c;注意&#xff1a;这些操作都可以在代码编辑器内独立完成&#xff0c;非常好用&#xff01;这里…

YOLOv8改进 | 2023 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

论文地址&#xff1a;官方论文地址 代码地址&#xff1a;该代码目前还未开源&#xff0c;我根据论文内容进行了复现内容在文章末尾。 一、本文介绍 本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块&#xff0c;主要针对的是小目标检测&#xff0c…

【GraphQL】什么是Prisma?

本页提供了Prisma及其工作原理的高级概述。 什么是Prisma&#xff1f; Prisma是一个开源的下一代ORM。它由以下部分组成&#xff1a; Prisma客户端&#xff1a;Node.js和TypeScript的自动生成和类型安全查询生成器Prisma迁移&#xff1a;迁移系统Prisma Studio:GUI&#xff0…

JVM——内存溢出和内存泄漏

目录 1. 内存溢出和内存泄漏内存泄漏的常见场景解决内存溢出的思路1.发现问题 – Top命令2.发现问题 – VisualVM3.发现问题 – Arthas4.发现问题 – Prometheus Grafana5.发现问题 – 堆内存状况的对比![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/058d113715b…

BIO、NIO、selector、Netty代码Demo示例

文章目录 &#xff08;一&#xff09;BIO&#xff08;Blocking I/O 阻塞I/O&#xff09;&#xff08;二&#xff09;NIO&#xff08;Non-Blocking I/O 非阻塞I/O&#xff09;&#xff08;三&#xff09;IO多路复用--Selector&#xff08;四&#xff09;Netty &#xff08;一&am…

【hacker送书第5期】SQL Server从入门到精通(第5版)

第5期图书推荐 内容简介作者简介图书目录参与方式 内容简介 SQL Server从入门到精通&#xff08;第5版&#xff09;》从初学者角度出发&#xff0c;通过通俗易懂的语言、丰富多彩的实例&#xff0c;详细介绍了SQL Server开发所必需的各方面技术。全书分为4篇共19章&#xff0c;…

C陷阱与缺陷——第5章库函数

1. 返回整数的getchar函数 #include <stdio.h>main() {char c;while((c getchar()) ! EOF){putchar(c);} } 上述函数是错误的&#xff0c;原因在于程序中的变量c被声明为char类型&#xff0c;而不是int类型&#xff0c;这意味着c无法容下所有可能的字符&#xff0c;特…

Java,反射机制与反射的应用

关于反射&#xff1a; 有时对象的编译时类型和运行时类型是不一致的。比如在使用多态的场景下&#xff0c;有一个Object类型的数组&#xff0c;其中的元素有着各种不同的类型&#xff0c;而调用相应的元素的方法时&#xff0c;比如调用toString方法时&#xff0c;希望调用的是…

优化机器学习:解析数据归一化的重要性与应用

在机器学习中&#xff0c;数据归一化是一种数据预处理的技术&#xff0c;旨在将数据转换为相似的范围或标准化的分布。这样做的主要目的是消除不同特征之间的量纲差异或数值范围差异&#xff0c;以确保模型在训练时更稳定、更有效地学习特征之间的关系。 通常&#xff0c;机器…

linux下ffmpeg安装

1.下载安装MP3编码库 因为FFmpeg默认只支持mp3的解码&#xff0c;不支持mp3编码。如果想把提取出来的音频保存为mp3格式肯定就需要mp3格式的编码库。因此&#xff0c;想输出mp3文件&#xff0c;需要借助第三方的mp3编码库。这里采用LAME编码库&#xff0c;即Lame Aint an MP3 E…

智能优化算法应用:基于水循环算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于水循环算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于水循环算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水循环算法4.实验参数设定5.算法结果6.参考文献7.…

Oracle把多行查询结果合并为一行

SELECT zjxm FROM pb_zjzcy&#xff0c;Oracle数据库&#xff0c;把zjxm合并到一个字段 在Oracle数据库中&#xff0c;你可以使用LISTAGG函数将多个行中的zjxm字段合并到一个字段中。以下是一个示例查询&#xff1a; SELECT LISTAGG(zjxm, ,) WITHIN GROUP (ORDER BY zjxm) A…

安卓apk抓包

起因 手机&#xff08;模拟器&#xff09;有时候抓不到apk的包&#xff0c;需要借助Postern设置一个代理&#xff0c;把模拟器的流量代理到物理机的burp上。 解决方案 使用Postern代理&#xff0c;把apk的流量代理到burp。 Postern是一个用于代理和网络流量路由的工具&#xf…