ModuleNotFoundError: No module named 'python'
ModuleNotFoundError: No module named 'python'
我有一个 python 项目,想写一个命令行启动器。当我 运行 测试或从我的 IDE (pycharm) 启动时,我的项目工作正常。但是,当我尝试通过命令行启动时,出现 ModuleNotFoundError: No module named 'python'
错误。
这是我的目录结构:
.
├── Makefile
├── Pipfile
├── Pipfile.lock
├── README.md
├── create_jenkins_jobs.sh
└── python
├── __init__.py
├── create_credentials.py
├── create_jenkins_jobs_cli.py
├── credential_builder.py
├── jenkins_multibranch_job_builder.py
├── templates
│ ├── job.xml
│ ├── multibranch_job_template.xml
│ ├── ssh_cred_template.xml
│ └── user_pw_cred_template.xml
└── tests
├── __init__.py
├── integration
│ ├── __init__.py
│ ├── build_credential_test.py
│ ├── build_job_test.py
│ ├── conftest.py
│ ├── test_id_rsa
│ └── test_id_rsa.pub
└── unit
shell 脚本 create_jenkins_jobs.sh
包含:
#!/bin/bash
python3 python/create_jenkins_jobs_cli.py "${@}"
文件 create_jenkins_jobs_cli.py
包含以下代码:
from typing import Set
from shared.common import preflight_env_check
from python.jenkins_multibranch_job_builder import JenkinsMultibranchJobBuilder
def configure_jenkins_jobs(git_repos: Set[str]):
jenkins_job_builder = JenkinsMultibranchJobBuilder(jenkins_server_url=JENKINS_BASE_SERVER_URL,
jenkins_folder=JENKINS_ROOT_JOB_FOLDER,
user=JENKINS_USER, token=JENKINS_TOKEN,
git_cred_id=GIT_SSH_CRED_ID,
git_repos=git_repos)
jenkins_job_builder.configure_jobs()
configure_jenkins_jobs(GIT_REPOS)
当我启动 create_jenkins_jobs.sh
或 create_jenkins_jobs_cli.py
时,我总是得到
ModuleNotFoundError: No module named 'python'
$>./create_jenkins_jobs.sh
/Users/pswenson/dev/cc-cicd-automation/.venv/bin/python3: Error while finding module specification for 'python/create_jenkins_jobs_cli.py' (ModuleNotFoundError: No module named 'python/create_jenkins_jobs_cli')
我尝试了各种不同的技术来让它与 PYTHONPATH、工作目录等一起工作...
似乎有一些关于 python 模块如何工作的基本知识我不明白。
是否更改线路:
from python.jenkins_multibranch_job_builder import JenkinsMultibranchJobBuilder
至
from jenkins_multibranch_job_builder import JenkinsMultibranchJobBuilder
给你排序?
我有一个 python 项目,想写一个命令行启动器。当我 运行 测试或从我的 IDE (pycharm) 启动时,我的项目工作正常。但是,当我尝试通过命令行启动时,出现 ModuleNotFoundError: No module named 'python'
错误。
这是我的目录结构:
.
├── Makefile
├── Pipfile
├── Pipfile.lock
├── README.md
├── create_jenkins_jobs.sh
└── python
├── __init__.py
├── create_credentials.py
├── create_jenkins_jobs_cli.py
├── credential_builder.py
├── jenkins_multibranch_job_builder.py
├── templates
│ ├── job.xml
│ ├── multibranch_job_template.xml
│ ├── ssh_cred_template.xml
│ └── user_pw_cred_template.xml
└── tests
├── __init__.py
├── integration
│ ├── __init__.py
│ ├── build_credential_test.py
│ ├── build_job_test.py
│ ├── conftest.py
│ ├── test_id_rsa
│ └── test_id_rsa.pub
└── unit
shell 脚本 create_jenkins_jobs.sh
包含:
#!/bin/bash
python3 python/create_jenkins_jobs_cli.py "${@}"
文件 create_jenkins_jobs_cli.py
包含以下代码:
from typing import Set
from shared.common import preflight_env_check
from python.jenkins_multibranch_job_builder import JenkinsMultibranchJobBuilder
def configure_jenkins_jobs(git_repos: Set[str]):
jenkins_job_builder = JenkinsMultibranchJobBuilder(jenkins_server_url=JENKINS_BASE_SERVER_URL,
jenkins_folder=JENKINS_ROOT_JOB_FOLDER,
user=JENKINS_USER, token=JENKINS_TOKEN,
git_cred_id=GIT_SSH_CRED_ID,
git_repos=git_repos)
jenkins_job_builder.configure_jobs()
configure_jenkins_jobs(GIT_REPOS)
当我启动 create_jenkins_jobs.sh
或 create_jenkins_jobs_cli.py
时,我总是得到
ModuleNotFoundError: No module named 'python'
$>./create_jenkins_jobs.sh
/Users/pswenson/dev/cc-cicd-automation/.venv/bin/python3: Error while finding module specification for 'python/create_jenkins_jobs_cli.py' (ModuleNotFoundError: No module named 'python/create_jenkins_jobs_cli')
我尝试了各种不同的技术来让它与 PYTHONPATH、工作目录等一起工作...
似乎有一些关于 python 模块如何工作的基本知识我不明白。
是否更改线路:
from python.jenkins_multibranch_job_builder import JenkinsMultibranchJobBuilder
至
from jenkins_multibranch_job_builder import JenkinsMultibranchJobBuilder
给你排序?