您无法直接确定正在执行的主脚本的位置 . 毕竟,有时脚本根本不是来自文件 . 例如,它可以来自交互式解释器或仅存储在存储器中的动态生成的代码 .

但是,您可以可靠地确定模块的位置,因为模块始终从文件加载 . 如果使用以下代码创建模块并将其放在与主脚本相同的目录中,则主脚本可以导入模块并使用它来定位自身 .

SOME_PATH / module_locator.py:

def we_are_frozen():

# All of the modules are built-in to the interpreter, e.g., by py2exe

return hasattr(sys, "frozen")

def module_path():

encoding = sys.getfilesystemencoding()

if we_are_frozen():

return os.path.dirname(unicode(sys.executable, encoding))

return os.path.dirname(unicode(__file__, encoding))

SOME_PATH / main.py:

import module_locator

my_path = module_locator.module_path()

如果在不同目录中有多个主脚本,则可能需要多个module_locator副本 .

当然,如果您的主脚本是由某些其他工具加载的,这些工具不允许您导入与您的脚本位于同一位置的模块,那么您就不走运了 . 在这种情况下,您所追求的信息根本不存在于您的程序中的任何位置 . 您最好的选择是向该工具的作者提交错误 .

java执行python路径_如何在Python中获取当前执行文件的路径?相关推荐

  1. java+script+当前日期_如何在JavaScript中获取当前日期?

    如何在JavaScript中获取当前日期? #1楼 您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法. #2楼 如果您想对日期格式进行更多的粒度控制,我强烈建议您查看 ...

  2. java如何实取随机数_java - 如何在Kotlin中获取随机数?

    java - 如何在Kotlin中获取随机数? 可以在2个参数之间返回随机整数的通用方法,如ruby,可以使用rand(0..n). 有什么建议吗? 16个解决方案 208 votes 我的建议是In ...

  3. php mysql 到表最后_如何在PHP中获取MySQL表的最后插入ID?

    如何在PHP中获取MySQL表的最后插入ID? 我有一张表,经常插入新数据. 我需要获取表格的最后一个ID. 我怎样才能做到这一点? 它类似于SELECT MAX(id) FROM table吗? g ...

  4. jquery 获取同级元素_如何在jQuery中获取元素的同级

    jquery 获取同级元素 In this post, we will discuss how to get the siblings of an HTML element in jQuery. jQ ...

  5. python执行的命令_如何在Python中执行外部命令

    Python子进程模块允许生成新进程,从Python脚本执行外部命令. 您可以使用这些教程来安装最新版本的Python. 此外,还有许多可用于Python IDE. 就像在Ubuntu系统上安装PyC ...

  6. python缓冲区_如何在Python中使用Google的协议缓冲区

    python缓冲区 When people who speak different languages get together and talk, they try to use a languag ...

  7. python多项式回归_如何在Python中实现多项式回归模型

    python多项式回归 Let's start with an example. We want to predict the Price of a home based on the Area an ...

  8. vscode怎么安装python库_如何在vscode中安装python库的方法步骤

    免费资源网 - https://freexyz.cn/ vscode安装python库 1.已经在vscode中装了python并配置好python运行环境. 检查是否正确配置好运行环境,按Windo ...

  9. python大括号_如何在python字符串中打印文字大括号字符并在其上使用.format?

    如何在python字符串中打印文字大括号字符并在其上使用.format? x = " \{ Hello \} {0} " print x.format(42) 给我:{Hello} ...

  10. java adt怎么使用_如何在eclipse中添加android ADT ADT插件的安装图文教程

    对于程序开发的学者来说,eclipse并不陌生,它为我们提供了一个非常广阔的平台来开发程序.同样我们也可以用它来开发android程序.但是在eclipse中并不能直接开发android程序,需要我们 ...

最新文章

  1. 高速无人机独立穿越森林,全程自己规划路线,时速高达40公里
  2. python xpath语法-Python爬虫之XPath语法
  3. mysql 当前记录集不支持书签_存储过程 分页。当前记录集不支持书签。这可能是提供程序或选定的游标类型的限制。...
  4. Java相关资料分享(视频+电子书籍)
  5. iPhone8 和 X 买哪个?听我的
  6. 小米4391人获1.749亿股股票的激励
  7. VC++下使用ADO编写数据库程序(关键文章)
  8. 工程力学考研 可以转计算机专业吗,跨专业考研我是工程力学的本科生,想要考飞行 – 手机爱问...
  9. 分销商城系统源码开发
  10. orl_faces数据集分享
  11. 怎样写好一篇英文论文
  12. NQueen问题(N皇后问题Java)
  13. Halcon生成标定描述文件
  14. Vagrant + VMBox 踩坑记录
  15. 【面试题】Redis SETEX /SETNX 的用法和区别
  16. 联通不断发短信-尊敬的用户请回复以下编码办理业务:599
  17. pysot-toolkit--eval.py笔记(读取算法结果,根据评价指标计算结果并可视化)
  18. DICTATOR第三周栈与队列作业
  19. 重庆市涪陵创新计算机学校图片,重庆市涪陵创新计算机学校寝室图片、学校环境好吗...
  20. hp M1005 激光打印机 通过usb接入路由器 变成网络打印机

热门文章

  1. 【Python】Python库之网络应用开发
  2. 装饰器python3菜鸟教程_认识Python装饰器
  3. zlib.h: 没有那个文件或目录
  4. PyTorch学习(7)-Seq2Seq与 Attention
  5. 推荐一些实用的的 Python 库
  6. 单进程服务器(python版)
  7. springboot项目访问不到controller方法。
  8. 【CCF】201903-1小中大
  9. 4.3.3 用jQuery获取动态数据
  10. ML《集成学习(四)Boosting之回归树、提升树和GBDT》