运行 来自 GitLab 项目的 API 时的类型错误
TypeError when running an API from a GitLab project
我可以访问包含以下分支的私有 GitLab 项目:main
、develop
和 new_branch
。机器学习项目非常复杂,包含用于 NLP 的各种转换器,以及从输入文本生成一些输出的许多步骤。快API也被用过
我想看看它是如何工作的 运行。我使用 Windows。我知道我需要 Python 3.9 并安装 pipenv
然后给出以下说明:
Install all dependencies locally by running `pipenv install --dev`.
Create an empty file named `.env` inside the root project folder.
Copy and paste the contents of the `.env.example` file into `.env`.
Run `pipenv run prebuild-win` to download the necessary static files needed by 3rd party libraries.
Run API using the following command: `pipenv run start`. Go to `http://localhost:8000/`.
我打开 git CMD,克隆了它,它是出现在文件夹中的 develop
分支(对于 new_branch
,它显示 Pipeline: failed
)。我导航到项目的文件夹,创建了一个虚拟环境并安装了依赖项。在 GitLab 中名为 .env.example
的文件已经作为 .env
出现在我的文件夹中,其中包含必要的内容。我 运行 pipenv run prebuild-win
其他所有东西都安装好了。
但是当我 运行 API 使用 pipenv run start
时,我得到:
Traceback (most recent call last):
File "C:\Users\me\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\me\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\me\the-project\app\main.py", line 25, in <module>
api = Api()
File "C:\Users\me\the-project\app\main.py", line 13, in __init__
self.config_service = ConfigService()
File "C:\Users\me\the-project\app\core\config.py", line 17, in __init__
self.port = int(os.getenv('PORT'))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
我做错了什么吗?
我检查了一下,有一个端口,我认为这是因为我跳过了创建 .env
文件的步骤。我创建了一个空文本文件,复制并粘贴了内容,但我得到了同样的错误。 .env.example
包含:
APP_NAME=My app
VERSION=0.0.1
HOST=127.0.0.1
PORT=1234
int(os.getenv('PORT'))
此行尝试读取环境变量 PORT
并将其转换为整数。
你收到错误的事实
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
表示os.getenv('PORT')
返回None
,即环境变量不存在
您需要了解如何设置适当的环境变量。显然将它们写入名为 .env
的文件中是不够的。
我可以访问包含以下分支的私有 GitLab 项目:main
、develop
和 new_branch
。机器学习项目非常复杂,包含用于 NLP 的各种转换器,以及从输入文本生成一些输出的许多步骤。快API也被用过
我想看看它是如何工作的 运行。我使用 Windows。我知道我需要 Python 3.9 并安装 pipenv
然后给出以下说明:
Install all dependencies locally by running `pipenv install --dev`.
Create an empty file named `.env` inside the root project folder.
Copy and paste the contents of the `.env.example` file into `.env`.
Run `pipenv run prebuild-win` to download the necessary static files needed by 3rd party libraries.
Run API using the following command: `pipenv run start`. Go to `http://localhost:8000/`.
我打开 git CMD,克隆了它,它是出现在文件夹中的 develop
分支(对于 new_branch
,它显示 Pipeline: failed
)。我导航到项目的文件夹,创建了一个虚拟环境并安装了依赖项。在 GitLab 中名为 .env.example
的文件已经作为 .env
出现在我的文件夹中,其中包含必要的内容。我 运行 pipenv run prebuild-win
其他所有东西都安装好了。
但是当我 运行 API 使用 pipenv run start
时,我得到:
Traceback (most recent call last):
File "C:\Users\me\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\me\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\me\the-project\app\main.py", line 25, in <module>
api = Api()
File "C:\Users\me\the-project\app\main.py", line 13, in __init__
self.config_service = ConfigService()
File "C:\Users\me\the-project\app\core\config.py", line 17, in __init__
self.port = int(os.getenv('PORT'))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
我做错了什么吗?
我检查了一下,有一个端口,我认为这是因为我跳过了创建 .env
文件的步骤。我创建了一个空文本文件,复制并粘贴了内容,但我得到了同样的错误。 .env.example
包含:
APP_NAME=My app
VERSION=0.0.1
HOST=127.0.0.1
PORT=1234
int(os.getenv('PORT'))
此行尝试读取环境变量 PORT
并将其转换为整数。
你收到错误的事实
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
表示os.getenv('PORT')
返回None
,即环境变量不存在
您需要了解如何设置适当的环境变量。显然将它们写入名为 .env
的文件中是不够的。