当前位置: 首页 > 面试题库 >

Python:相对于当前正在运行的脚本添加到sys.path的最佳方法

王岳
2023-03-14
问题内容

我有一个充满脚本的目录(假设project/bin)。我也有一个库project/lib,希望脚本自动加载它。这是我通常在每个脚本顶部使用的内容:

#!/usr/bin/python
from os.path import dirname, realpath, sep, pardir
import sys
sys.path.append(dirname(realpath(__file__)) + sep + pardir + sep + "lib")

# ... now the real code
import mylib

这有点麻烦,丑陋,必须粘贴到每个文件的开头。有一个更好的方法吗?

我真正希望的是这样的事情:

#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")

import mylib

甚至更好的是,当我的编辑器(或其他拥有提交访问权限的人)决定在其清理过程中对导入进行重新排序时,这些操作不会中断:

#!/usr/bin/python --relpath_append ../lib
import mylib

这不会直接移植到非posix平台,但可以保持干净。


问题答案:

如果您不想编辑每个文件

  • 安装你的资料库像一个正常的Python libray

  • 设置PYTHONPATH为您的lib

或者如果您愿意在每个文件中添加一行,则在顶部添加导入语句,例如

import import_my_lib

保持import_my_lib.py在bin中,import_my_lib可以正确地将python路径设置为lib您想要的任何内容



 类似资料:
  • 问题内容: 确保给定脚本仅一个实例正在运行的最简单/最佳方法是什么(假设它是Linux上的Bash)? 目前,我正在做: 但是它有几个问题: 它把检查放在脚本之外 它不允许我从单独的帐户运行相同的脚本-有时我想这样做。 仅检查进程名称的前14个字符 当然,我可以编写自己的pidfile处理程序,但我认为应该有一种简单的方法。 问题答案: 如果所有用户的脚本都相同,则可以使用一种方法。如果您获得了锁

  • 问题内容: 如何检查正在解释脚本的版本的Python Interpreter? 问题答案: 模块的字符串中提供了此信息: 可读性: 进行进一步处理: 为了确保脚本以Python解释器的最低版本要求运行,请将其添加到你的代码中: 这将比较主要版本和次要版本信息。微(=添加0,1等等),甚至的元组只要你喜欢。但是请注意,最好总是“躲避”检查某个功能是否存在,如果没有,请采取变通方法(或纾困)。有时,某

  • 本文向大家介绍PowerShell中获取当前运行脚本路径的方法,包括了PowerShell中获取当前运行脚本路径的方法的使用技巧和注意事项,需要的朋友参考一下 在运行脚本的时候,有时候需要通过脚本文件所在位置的相对路径来做一些事,比如执行另一个脚本。以前在CMD时代,可以通过%~dp0来获取脚本所在的文件夹,那在PowerShell中要怎么做呢? 很简单,通过内置的$MyInvocation变量:

  • 我在两个Python脚本之间进行通信时遇到一些问题。我对python和raspberry pi是相当陌生的,我已经发现了多种方法,经过一段时间的理解,这些方法对我来说是无用的。所以在花了几个小时之后,我想最好问问更有经验的人。 所以我正在做一个项目,我使用一个网页来通过多个覆盆子派控制多台机器。(4个覆盆子)您可以在网页上输入机器以及机器应该激活多长时间。然后,网页使用机器和时间执行Python脚

  • 问题内容: 我正在寻找一个不错的JS代码片段,以将时间戳记(例如,来自Twitter API)转换为用户友好的相对时间(例如2秒前,一周前等)。 有人愿意分享一些他们喜欢的方法(最好不使用插件)吗? 问题答案: 好吧,如果您不太担心准确性,那很容易。平凡的方法有什么问题? 如果这会让您感到困扰,则可能需要对其进行调整以更好地处理奇异值(例如而不是)。

  • 本文向大家介绍在CMD命令行中运行python脚本的方法,包括了在CMD命令行中运行python脚本的方法的使用技巧和注意事项,需要的朋友参考一下 网上给出了各种方法,都无碍乎先切换到Python脚本所在目录,然后输入Python脚本名称并回车,本文这里给出了更简便的方法。 方法一: 进入Python脚本所在的文件夹,shift+右击,选择“在此处打开命令窗口”,按TAB键切换文件,选择目标pyt