我开始使用 bitbucket CI 制作应用程序,我正在使用以下步骤来部署应用程序,但安装 pip 的步骤失败了。
script:
- apt-get update
- apt-get install -y python-dev
- curl -O https://bootstrap.pypa.io/get-pip.py
- python get-pip.py
... and a few more steps
Run Code Online (Sandbox Code Playgroud)
不知道为什么,但python get-pip.py步骤失败并出现以下错误。
Traceback (most recent call last):
File "get-pip.py", line 24226, in <module>
main()
File "get-pip.py", line 199, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
from pip._internal.cli.main import main as pip_entry_point
File "/tmp/tmpUgc5ng/pip.zip/pip/_internal/cli/main.py", line 60
sys.stderr.write(f"ERROR: {exc}")
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
直到昨天,这一切正常。不知道为什么这现在不起作用。
我认为这可能是因为 Windows,但我检查了运行 linux 的本地机器,但这些步骤但它们工作正常。
假设我有一个简单的方法,需要一个字符串列表。
def make_fruits_lower_case(list_of_fruits):
"""make fruits pretty bla bla bla"""
return [fruit.lower() for fruit in list_of_fruits]
Run Code Online (Sandbox Code Playgroud)
用例 1:开发人员提供了一份水果列表,效果很好。预期行为。
make_fruits_lower_case(['APPLE', 'ORANGE']) -- > ['apple', 'orange']
Run Code Online (Sandbox Code Playgroud)
用例 2:假设其他开发人员有意或无意地向其提供了一个字符串。
make_fruits_lower_case('APPLE') --> ['a', 'p', 'p', 'l', 'e']
Run Code Online (Sandbox Code Playgroud)
处理这种情况的Pythonic方法是什么?
1:引入参数验证
def make_fruits_lower_case(list_of_fruits):
if isinstance(list_of_fruits, list):
return [fruit.lower() for fruit in list_of_fruits]raise
TypeError('list_of_fruits must be a of type list')
Run Code Online (Sandbox Code Playgroud)
2:期望用例 2 中的开发人员提供列表。
除了这种特定情况之外,如果我们知道处理这种情况的 Pythonic 建议是什么,我们希望开发人员确保他们提供正确的参数,或者我们应该添加一些基本验证?
我想在我的电脑上安装 pygame 当我输入pipcmd 我收到这个错误:
File "C:\Python34\Scripts\pip3-script.py", line 9, in <module>
load_entry_point('pip==21.1', 'console_scripts', 'pip3')()
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 558, in load_entry_point
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2682, in load_entry_point
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2355, in load
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2361, in resolve
File "C:\Users\user\AppData\Roaming\Python\Python34\site-packages\pip\__init__
.py", line 1, in <module>
from typing import List, Optional
ImportError: No module named 'typing'
Run Code Online (Sandbox Code Playgroud)