如何在运行时添加python包路径

时间:2011-04-19 06:30:18

标签: python

这是一个场景,我希望你能帮助我。

我在/home/k/PR-TEST/Pr/test

中进行了python单元测试
kahmed@qatools:~/PR-TEST/Pr-test$ ls
_apache.py        archive  clienttest  decorators.py   fakeTecoreClient.py  fixtures.pyc     psqlharness.py  servertest   testhelp.pyc  testutils.pyc
apache_server.py  cache    commontest  decorators.pyc  fixtures.py          mysqlharness.py  runtests.sh     testhelp.py  testutils.py

并让我实际运行的程序包针对@ /home/k/PR/Pr命名(目录名为)pref

kahmed@qatools:~/PR/Pr$ pwd
/home/kahmed/PR/Pr
kahmed@qatools:~/PR/Pr$ ls
bin  conf  images  init.d  iped  logrotate.d  NEWS  pref  rpa  sbin  scripts  src  test  VERSION

现在,我cd to ~/PR-TEST/Pr-test,然后运行:

nosetests -s --with-coverage --cover-package /home/k/PR/Pr/pref  `find . -name "*test.py"`

但我得到的错误是它找不到pref

中的包

知道如何解决这个问题吗?

我必须确保python环境知道包pr

3 个答案:

答案 0 :(得分:3)

如果在启动程序之前无法(或不想)修改PYTHONPATH,则可以在运行时修改sys.path以实现类似的功能。
但在这种情况下,您需要将调用包装到nosetests脚本。另外,请检查您的程序包是否Pr vs pr,并且不会出现区分大小写的问题。

答案 1 :(得分:1)

您应该将包的路径添加到PYTHONPATH环境变量

答案 2 :(得分:0)

您应该将您的应用程序包放在“foo / app”目录中,并将测试放在另一个名为“foo / tests”的子目录中。然后从foo目录运行测试,以便他们可以直接导入app