python-pyinstaller、打包后获取路径

使用pyinstaller可以把.py文件打包为.exe可执行文件,命令为:

pyinstaller hello.py

打包后有两个文件夹,一个是dist,另外一个是build,可执行文件在dist文件夹里面,但是会有许多依赖是独立文件存在

pyinstaller -F hello.py

使用-F参数后,打包的可执行文件是一个整体,只有一个.exe文件。

获取文件路径的方式有四种,可以在打包成exe文件后,获取.exe文件的当前路径

  1. import sys

  2. import os

  3. print(sys.path[0])

  4. print(sys.argv[0])

  5. print(os.path.dirname(os.path.realpath(sys.executable)))

  6. print(os.path.dirname(os.path.realpath(sys.argv[0])))

在ide界面的执行结果如下图:

在exe文件的执行结果为:

 

#########################################################################

python找包的路径(找不到自定义包的问题解决)

问题:工程下自定义的包,python在执行时经常找不到包

python找包的路径:python安装路径下的lib包和PYTHONPATH下的包

可以使用[sys.path]打印出python找包的路径

import sys
syspath=sys.path

但是在jenkins运行时经常提示找不到包,所以就需要手动添加PYTHONPATH,通过追加sys.path列表来实现

例如下面的方式:

mport os
import sys
rootpath=str("工程所在目录")
syspath=sys.path
sys.path=[]
sys.path.append(rootpath)#将工程根目录加入到python搜索路径中
sys.path.extend([rootpath+i for i in os.listdir(rootpath) if i[0]!="."])#将工程目录下的一级目录添加到python搜索路径中

sys.path.extend(syspath)

import os
import sys
rootpath=str("工程所在目录")
syspath=sys.path
sys.path=[]
sys.path.append(rootpath)#将工程根目录加入到python搜索路径中
sys.path.extend([rootpath+i for i in os.listdir(rootpath) if i[0]!="."])#将工程目录下的一级目录添加到python搜索路径中
sys.path.extend(syspath)

说明:因为我是用pycharm建的一个工程,我遇到的问题也是找不到工程下的目录,所以就添加了工程目录以及他下面的一级目录

我之所以先用sys.path=[]把他清空,然后将默认的路径追加进来,是因为我工程内有一个包可能与其他路径的重叠了,如果放到后面会报错。所以我就把路径放到前面

 

你可能感兴趣的:(python-pyinstaller、打包后获取路径)