Python:是否可以只从sys.path中的文件夹中获取特定模块

时间:2012-04-08 19:31:56

标签: python python-module pythonpath

我需要一个或两个模块来自一个包含其他几个python模块的文件夹。当我将文件夹添加到我的路径时,我有效地使该文件夹中的所有模块可供我使用。但是有几个过时的模块我不想要。是否有可能只为我提供这些模块的某个子集?

3 个答案:

答案 0 :(得分:2)

阅读你的问题我理解

  1. 您在python路径中包含该文件夹,因为您需要几个模块。
  2. 由于它包含的某些其他模块与您使用的版本相比可能已过时,因此您不希望最终导入错误的库。
  3. 我建议两个可能对你有用的选项。

    1. 确保您包含的此文件夹位于sys.path的末尾。这样可以确保您在新添加的文件夹中存在的任何模块永远不会从该特定位置导入。
    2. (仅限* nix)创建另一个文件夹,并为您感兴趣的文件创建一个符号链接。然后您应该包含您创建的其他文件夹。
    3. 阅读您的评论,我建议,最好的选择是在您的脚本中的某处添加以下行但在导入之前

      import sys
      sys.path.append('/whatever')
      

答案 1 :(得分:1)

如果你

import X

导入模块X.没有别的。你的python路径上的东西不等于自动导入(它只是 importable )。另见:

答案 2 :(得分:1)

创建一个新目录。对于要导入的每个模块,添加指向实际模块的符号链接(ln -s)。然后将新目录添加到您的路径中,您不必使用包含订单玩游戏。

mkdir ./mymods
export PYTHONPATH="$PYTHONPATH":`pwd`/mymods 
cd mymods
ln -s ../allmods/module1.py 
ln -s ../allmods/module2.py