美文网首页
Python-运行环境及条件-01-环境变量path

Python-运行环境及条件-01-环境变量path

作者: Data_Python_VBA | 来源:发表于2020-05-02 09:09 被阅读0次

微信公众号原文

系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
Python:3.6.0

  • 这个系列讲讲Python运行环境及条件
  • 今天讲讲环境变量:sys.path

Part 1:背景介绍

  1. 当代码从本台设备复制到另外一台设备时候,有的时候运行不了,提示某些模块找不到,如下图的提示。
  2. 示例的文件结构如下图,在path_explain包下,有两个包pack1pack2
    • path_explain下有一个path_example_3模块
    • pack1下有一个test_11模块
    • pack2下有一个path_example_1path_example_2模块

错误提示

1.png

代码文件组织结构

2.png
  1. test_11内含有函数add
3.png
  1. 想实现的功能如下:
    • path_example_1中调用add函数
    • path_example_2中调用add函数
    • path_example_3中调用add函数

Part 2:path_example_1中调用add函数

  1. path_example_1.pytest_11.py分别在两个平行的包pack1,pack2下面
2.png
import sys

print(sys.path)

from pack1.test_11 import add

x = 1
y = 2
z = add(x, y)
print(z)

代码运行结果

7.png
  1. 提示无法找到pack1
  2. 我们在导入模块时,本质上是Python解释器在sys.path的地址中寻找对应的文件,我们在运行某个程序时,会默认将当前文件所在路径加入到sys.path中,其余的地址是默认的
    • 我们发现sys.path地址中存在E:\\Coding\\E_PythonWriting,这个是Pycharm自己加的,因为在Pycharm中我们打开这个文件夹作为根目录
    • cmd中运行path_example_1,发现路径中就没有E:\\Coding\\E_PythonWriting
  3. 因为在当前所有搜索路径中无法找到pack1,所以就会报错
6.png

Part 3:path_example_2中调用add函数

  1. path_example_2.pypath_example_1.py都在包pack1下
  2. path_example_2.pytest_11.py分别在两个平行的包pack1,pack2下面
2.png
import sys
import os

# 搜索路径改变
# 修改路径前
print(sys.path)

path_1 = os.path.abspath(__file__)
folder_address = os.path.dirname(path_1)

program_path = os.path.dirname(folder_address)

# 修改路径后
print("\n")
sys.path.append(program_path)
print(sys.path)

from pack1.test_11 import add

x = 1
y = 2
z = add(x, y)
print(z)


代码运行结果

8.png
  1. 运行正常,没有报错
  2. sys.path中新增了一个地址,为本py文件的上一级文件夹地址,这样就可以搜索到与本文件同级别的pack1包
  3. 当我们项目中有多个包,并且包之间存在引用,那么我们需要将该包的上一级文件夹加入sys.path中。关于加入sys.path的方法有3种(或者还有更多)
    • 方法1:如本文所示,在代码中增加,这种增加是临时的,运行完毕,则释放
    • 方法2:在我的电脑中的环境变量中增加,这种方法是永久的
    • 方法3:在Python的安装环境中的Lib\site-packages环境下加入pth文本文件,文件中写入项目地址,这个方法是永久的
  4. 建议采用方法1,因为在自己编写的不同项目中,可能采用了同一个包名,但是功能略有不同,这样在搜索模块时会弄错

Part 4:path_example_3中调用add函数

  1. path_example_3.pytest_11.py对应包pack1的上一级文件夹中
2.png
import sys
from pack1.test_11 import add

print(sys.path)
x = 1
y = 2
z = add(x, y)
print(z)

运行结果

10.png
  1. 按照上文的解释,代码所在文件夹会纳入sys.path中,而pack1属于该文件夹的子文件夹下,会搜索到,所以无需修改sys.path

本文为原创作品,欢迎分享朋友圈

长按图片识别二维码,关注本公众号
Python 优雅 帅气


12x0.8.jpg

相关文章

  • Python-运行环境及条件-01-环境变量path

    微信公众号原文 系统:Windows 7语言版本:Anaconda3-4.3.0.1-Windows-x86_64...

  • JAVA环境变量

    一、环境变量作用 path系统环境变量的作用: Windows和DOS操作系统中的path环境变量,当要求系统运行...

  • linux 环境变量操作

    查看PATH环境变量:echo $PATH添加PATH环境变量:export PATH=$PATH:/usr/lo...

  • Linux Tips

    环境变量 查看用户环境变量echo $PATH 添加环境变量(临时)echo $PATH 添加环境变量(永久,对于...

  • JDK环境变量设置

    1 path环境变量的作用及配置方式11.1 path环境变量的作用 在JDK的bin目录下开发程序容易产生的问题...

  • [macOS] Tips

    重置环境变量PATH=$(getconf PATH) 增加环境变量export PATH=/usr/local/b...

  • node学习笔记(2):NODE_PATH环境变量

    NODE_PATH环境变量: 与PATH环境变量类似,NodeJS允许通过NODE_PATH环境变量来指定额外的模...

  • Mac OS X修改环境变量

    1.快速修改环境变量 查看当前环境变量echo $PATH添加一个路径到环境变量export PATH=$PATH...

  • MAC环境变量PATH的设置方式与优先级

    经常性的,开发中需要安装app包,并将对应app的运行目录添加到环境变量PATH中。但MAC下的path环境变量的...

  • python软件安装

    环境变量配置: 方法一:使用cmd命令添加path环境变量 在cmd下输入:path=%path%...

网友评论

      本文标题:Python-运行环境及条件-01-环境变量path

      本文链接:https://www.haomeiwen.com/subject/vlmhghtx.html