尽管根据这里关于堆栈溢出的问题设置了我的路径和python路径,但我在Jenkins中遇到了模块导入错误
我试过这个
Jenkins: putting my Python module on the PYTHONPATH
Python module import failure in Jenkins
这个命令在我的本地机器上运行,没有任何导入问题,但在Jenkins上失败
命令
#!/bin/bash
export PYTHONPATH=$WORKSPACE:$PYTHONPATH
export PATH=$WORKSPACE:$PATH
export DJANGO_SETTINGS_MODULE=myapp.settings.test
echo "Working directory: "
pwd
echo "path: "
echo $PATH
echo "Python path: "
echo $PYTHONPATH
/home/adminuser/.virtualenvs/myapp/bin/python myapp/manage.py jenkins --project-apps-tests --enable-coverage --settings=myapp.settings.test
生成错误
Working directory:
/var/lib/jenkins/jobs/myapp_QA_TESTS/workspace
path:
/var/lib/jenkins/jobs/myapp_QA_TESTS/workspace/myapp/apps/:/var/lib/jenkins/jobs/myapp_QA_TESTS/workspace:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Python path:
/var/lib/jenkins/jobs/myapp_QA_TESTS/workspace/myapp/apps/:/home/adminuser/.virtualenvs/myapp/bin:/var/lib/jenkins/jobs/myapp_QA_TESTS/workspace:
-------- USING TEST SETTINGS ------
Traceback (most recent call last):
......
File "/var/lib/jenkins/jobs/myapp_QA_TESTS/workspace/myapp/apps/accounts/models.py", line 18, in <module>
from apps.registration.tokens.token import GenerateToken
ImportError: No module named registration.tokens.token
我的文件结构
myapp/
âââ apps
â  âââ __init__.py
â  âââ accounts
â  âââ registration
âââ myapp
â  âââ __init__.py
â  âââ celery.py
â  âââ settings
â  âââ urls.py
â  âââ wsgi.py
âââ manage.py
查看模块目录
myapp/apps/registration/tokens
âââ __init__.py
âââ token.py
myapp/apps/accounts/
âââ __init__.py
âââ models.py
我甚至尝试将workspace目录和virtualenv路径附加到path和PYTHONPATH,我还将模块目录添加到了path与PYTHONPATH
如何修复此导入错误,如有任何帮助,我们将不胜感激