win10中VsCode下python导入包的笔记

win10中VsCode下python导入包的笔记

解决办法: sys.path.append()

os.getcwd() # 当前路径,即vscode打开的folder所在位置 
print("**************")
print("系统路径:")   #  会自动临时添加所运行的py文件所在位置
for pt in sys.path:
    print("\t",pt)
print("**************")
sys.path.append(r"E:\python小脚本\测试导入\projects")
sys.path.append(os.getcwd())

被导入的文件: function1_1a.py

# 被导入的文件内容 
import os
path = r"E:\python小脚本\测试导入\projects\project1\project1_1\function1_1a.py"
print("\n\n我是文件: ","function1_1a.py")
print("当前工作路径: ",os.getcwd())
print("我的位置: ", path)
if __name__ == '__main__':
    print("我作为main程序执行开始...")
    print("我的位置: ", path)
    print("我作为main程序执行结束...\n")
  

主程序: test_project1_1.py

print("\n\n开始导入...")
import os
import sys

print("\n\n当前路径:")
print(os.getcwd())
print("**************")
print("系统路径:")
for pt in sys.path:
    print("\t",pt)
print("**************")

sys.path.append(r"E:\python小脚本\测试导入\projects")
sys.path.append(os.getcwd())
import function1_1a
# import function1_1a # 注意这里不会重复导入
# from . import function1_1a # 这样做没有用 # 可能必须要在Linux下才可以这么干
import project1_1_1.function1_1_1a
import project1_1_1.project1_1_1_1.function1_1_1_1a
import project3.function3c
import project3.project3_3.function3_3c
import project3.project3_3.project3_3_3.function3_3_3c
# import project3.project3_3.project3_3_3.project3_3_3_3.function3_3_3_3c
from project3.project3_3.project3_3_3.project3_3_3_3 import function3_3_3_3c # 该语句同上,效果相同
# from project3 import project3_3.project3_3_3.project3_3_3_3.function3_3_3_3c # 该语句会语法错误!!!!!!!!

########################################
print("\n\n\n完成导入...")
print("\n\n当前路径:")
print(os.getcwd())
print("**************")
# print("系统路径:")
# for pt in sys.path:
#     print("\t",pt)
# print("**************")
print(type(os))
print(type(sys))
print(type(function1_1a))
print(type(project1_1_1.function1_1_1a))
print(type(project1_1_1.project1_1_1_1.function1_1_1_1a))
print(type(project3.function3c))
print(type(project3.project3_3.function3_3c))
print(type(project3.project3_3.project3_3_3.function3_3_3c))
print(type(project3.project3_3.project3_3_3.project3_3_3_3.function3_3_3_3c))

执行结果:

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS E:\>  & 'D:\Python\Python37\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2020.8.106424\pythonFiles\lib\python\debugpy\launcher' '50677' '--' 'e:\python小脚本\测试导入\projects\project1\project1_1\test_project1_1.py'


开始导入...


当前路径:
E:\
**************
系统路径:
         e:\python小脚本\测试导入\projects\project1\project1_1
         D:\Python\Python37\python37.zip
         D:\Python\Python37\DLLs
         D:\Python\Python37\lib
         D:\Python\Python37
         D:\Python\Python37\lib\site-packages
         D:\Python\Python37\lib\site-packages\win32
         D:\Python\Python37\lib\site-packages\win32\lib
         D:\Python\Python37\lib\site-packages\Pythonwin
**************


我是文件:  function1_1a.py
当前工作路径:  E:\
我的位置:  E:\python小脚本\测试导入\projects\project1\project1_1\function1_1a.py


我是文件:  function1_1_1a.py
当前工作路径:  E:\
我的位置:  E:\python小脚本\测试导入\projects\project1\project1_1\project1_1_1\function1_1_1a.py


我是文件:  function1_1_1_1a.py
当前工作路径:  E:\
我的位置:  E:\python小脚本\测试导入\projects\project1\project1_1\project1_1_1\project1_1_1_1\function1_1_1_1a.py


我是文件:  function3c.py
当前工作路径:  E:\
我的位置:  E:\python小脚本\测试导入\projects\project3\function3c.py


我是文件:  function3_3c.py
当前工作路径:  E:\
我的位置:  E:\python小脚本\测试导入\projects\project3\project3_3\function3_3c.py


我是文件:  function3_3_3c.py
当前工作路径:  E:\
我的位置:  E:\python小脚本\测试导入\projects\project3\project3_3\project3_3_3\function3_3_3c.py


我是文件:  function3_3_3_3c.py
当前工作路径:  E:\
我的位置:  E:\python小脚本\测试导入\projects\project3\project3_3\project3_3_3\project3_3_3_3\function3_3_3_3c.py



完成导入...


当前路径:
E:\
**************
<class 'module'>
<class 'module'>
<class 'module'>
<class 'module'>
<class 'module'>
<class 'module'>
<class 'module'>
<class 'module'>
<class 'module'>
PS E:\> 

要点总结:

import os
import sys

print("\n\n当前路径:")
print(os.getcwd()) # 这个是VSCODE实际打开的文件夹的路径
print("**************")
print("系统路径:")
for pt in sys.path: # sys.path 会自动添加当前执行的py文件的路径
    print("\t",pt)
print("**************")

# sys.path.append(os.getcwd())

########################################
print("\n\n\n完成导入...")
print("\n\n当前路径:")
print(os.getcwd())
print("**************")
# print("系统路径:")
# for pt in sys.path:
#     print("\t",pt)
# print("**************")

执行结果:

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS E:\>  & 'D:\Python\Python37\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2020.8.106424\pythonFiles\lib\python\debugpy\launcher' '50689' '--' 'e:\python小脚本\测试导入\projects\project1\project1_1\testPATH.py'


当前路径:
E:\
**************
系统路径:
         e:\python小脚本\测试导入\projects\project1\project1_1
         D:\Python\Python37\python37.zip
         D:\Python\Python37\DLLs
         D:\Python\Python37\lib
         D:\Python\Python37
         D:\Python\Python37\lib\site-packages
         D:\Python\Python37\lib\site-packages\win32
         D:\Python\Python37\lib\site-packages\win32\lib
         D:\Python\Python37\lib\site-packages\Pythonwin
**************



完成导入...


当前路径:
E:\
**************
PS E:\> 

拓展:获取父目录

方法: os.path.realpath("..")

sys.path.append(os.getcwd())  # 将当前目录添加到系统路径
sys.path.append("..") # 无效
sys.path.append(".")  # 无效
sys.path.append(os.path.realpath("."))  # 当前目录,即os.getcwd()
sys.path.append(os.path.realpath("..")) # 当前目录的父目录,即os.getcwd()的父目录

代码如下:

import os
import sys

print("\n\n当前路径:")
# print(os.getcwd()) # 这个是VSCODE实际打开的文件夹的路径
print("**************")
print("系统路径:")
for pt in sys.path: # sys.path 会自动添加当前执行的py文件的路径
    print("\t",pt)
print("**************")



########################################
print("\n\n\n完成导入...")
print("\n\n当前路径:")
print(os.getcwd())
print("**************")


# sys.path.append(os.getcwd())
sys.path.append("..") # 无效
sys.path.append(".")  # 无效
sys.path.append(os.path.realpath("."))  # 当前目录,即os.getcwd()
sys.path.append(os.path.realpath("..")) # 当前目录的父目录,即os.getcwd()的父目录

print("系统路径:")
for pt in sys.path:
    print("\t",pt)
print("**************")
print("\n\n当前路径:")
print(os.getcwd())
print("**************")

实验结果:

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS E:\python小脚本\测试导入\projects\project1>  & 'D:\Python\Python37\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2020.8.106424\pythonFiles\lib\python\debugpy\launcher' '51770' '--' 'e:\python小脚本\测试导入\projects\project1\project1_1\testPATH.py'


当前路径:
**************
系统路径:
         e:\python小脚本\测试导入\projects\project1\project1_1
         D:\Python\Python37\python37.zip
         D:\Python\Python37\DLLs
         D:\Python\Python37\lib
         D:\Python\Python37
         D:\Python\Python37\lib\site-packages
         D:\Python\Python37\lib\site-packages\win32
         D:\Python\Python37\lib\site-packages\win32\lib       
         D:\Python\Python37\lib\site-packages\Pythonwin       
**************



完成导入...


当前路径:
E:\python小脚本\测试导入\projects\project1
**************
系统路径:
         e:\python小脚本\测试导入\projects\project1\project1_1
         D:\Python\Python37\python37.zip
         D:\Python\Python37\DLLs
         D:\Python\Python37\lib
         D:\Python\Python37
         D:\Python\Python37\lib\site-packages
         D:\Python\Python37\lib\site-packages\win32
         D:\Python\Python37\lib\site-packages\win32\lib
         D:\Python\Python37\lib\site-packages\Pythonwin
         ..
         .
         E:\python小脚本\测试导入\projects\project1
         E:\python小脚本\测试导入\projects
**************


当前路径:
E:\python小脚本\测试导入\projects\project1
**************
PS E:\python小脚本\测试导入\projects\project1> 

你可能感兴趣的:(python基础实验,python,windows)