【问题标题】:Python: sys.path.append vs. import?Python:sys.path.append 与 import?
【发布时间】:2013-04-25 23:13:25
【问题描述】:

我有一个(单个).py 脚本。在其中,我需要导入一个库。

为了找到这个库,我需要调用 sys.path.append。但是,我不想硬编码库的路径,而是将其作为参数传递。

所以我的问题是,如果我在这个文件中创建一个函数(set_path),我需要导入文件,并且导入失败,因为路径尚未附加。

有什么好的方法可以解决这个问题?

cmets 之后的澄清:

  • 我使用的是 IronPython,库路径是 CPython/lib 的路径。这条路径(可能)在每个系统上都不同。
  • 据我所知,我无法通过 sys.argv 传递任何内容,因为该脚本是在嵌入式 python 解释器中运行的,并且没有 main 函数。

【问题讨论】:

  • 库是否未与您的 Python 安装一起存储(在站点包中)?
  • 设置PYTHONPATH 环境变量而不是更改sys.path 不是更简单吗?
  • 我用的是IronPython,需要用到CPython包;我要附加的路径实际上是 CPython lib 目录的路径。所以没有。

标签: python ironpython python-import


【解决方案1】:

您不应该在全局范围内进行导入,而应在附加路径后调用的函数内进行。

【讨论】:

    【解决方案2】:

    也许使用 sys.argv 将文件作为参数传递,将其添加到路径中,然后导入。 然后像这样运行你的程序:

    python my_program.py somefolder/some_import.py
    

    这里是使用 sys.argv 的参考:http://www.pythonforbeginners.com/systems-programming/python-sys-argv/

    【讨论】:

      猜你喜欢
      • 2013-09-27
      • 2012-03-15
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      相关资源
      最近更新 更多