Skip to content

bug: Python library conflict: python-pandas-opentrons #17715

Open
@danolson1

Description

@danolson1

Overview

I just upgraded my robot to version 8.3.0 and ran into a problem with a python protocol that reads an excel file. To troubleshoot this issue, I tried to re-create my OT2 robot python environment on my computer. This does not seem to be possible.

My OT2 robot has the following libraries:

Package               Version
--------------------- ------------
aiodns                1.1.1
aiohttp               3.9.3
aionotify             0.3.1
aiosignal             1.3.1
annotated-types       0.7.0
anyio                 3.7.1
asgiref               3.4.1
asttokens             2.2.1
async-timeout         4.0.3
attrs                 23.2.0
backcall              0.2.0
bleach                3.1.0
cchardet              2.1.4
cffi                  1.15.1
charset-normalizer    3.0.1
click                 8.1.2
comm                  0.1.4
decorator             5.1.1
defusedxml            0.7.1
entrypoints           0.3
et-xmlfile            1.1.0
exceptiongroup        1.2.0
executing             1.2.0
fastapi               0.100.0
fastjsonschema        2.19.1
filetype              1.2.0
frozenlist            1.4.1
greenlet              2.0.2
h11                   0.14.0
httptools             0.6.0
idna                  3.3
importlib-metadata    4.6.3
ipykernel             6.20.2
ipython               8.16.1
ipython_genutils      0.2.0
jedi                  0.18.2
Jinja2                3.1.2
jsonschema            4.17.3
jupyter-client        6.1.12
jupyter-core          4.6.1
MarkupSafe            2.1.1
matplotlib-inline     0.1.6
mistune               0.8.4
multidict             6.0.5
nbconvert             5.4.1
nbformat              5.9.2
nest-asyncio          1.5.8
notebook              6.0.3
numpy                 1.21.6
openpyxl              3.1.2
opentrons             8.3.0
opentrons-hardware    0.0.0.dev0
opentrons-shared-data 8.3.0
otupdate              8.3.0
packaging             23.2
paho-mqtt             1.6.1
pandas                1.0.5
pandocfilters         1.4.2
parso                 0.8.3
pexpect               4.8.0
pickleshare           0.7.5
pip                   22.3.1
prometheus-client     0.6.0
prompt-toolkit        3.0.36
psutil                5.9.4
ptyprocess            0.7.0
pure-eval             0.2.2
pycares               4.3.0
pycparser             2.21
pydantic              2.9.2
pydantic_core         2.23.4
pydantic-settings     2.4.0
Pygments              2.14.0
PyJWT                 2.6.0
pyrsistent            0.20.0
pyserial              3.5
python-dateutil       2.8.2
python-dotenv         1.0.1
python-multipart      0.0.6
pytz                  2022.7
pyzmq                 24.0.1
robot-server          8.3.0
Send2Trash            1.5.0
server-utils          0.0.0.dev0
setuptools            68.2.2
simplegeneric         0.8.1
six                   1.16.0
smbus                 1.1
sniffio               1.3.0
SQLAlchemy            1.4.51
stack-data            0.6.2
starlette             0.27.0
system-server         8.3.0
systemd-python        234
terminado             0.8.1
testpath              0.4.2
tornado               6.2
traitlets             5.8.0
typing_extensions     4.9.0
uvicorn               0.27.0.post1
uvloop                0.18.0
wcwidth               0.2.5
webencodings          0.5.1
websockets            9.1
wsproto               1.2.0
yarl                  1.9.4
zipp                  3.5.0

The python version is:

# python -V
Python 3.10.8

Steps to reproduce

I am trying to recreate this environment on my computer using the following yaml file:

name: ot2_v8
channels:
  - conda-forge
  - defaults
dependencies:
  - pip
  - python >= 3.10, < 3.11
  - numpy = 1.21.6 # opentrons is very specific about the version of numpy they can use
  - pandas == 1.0.5
  - openpyxl
  - jupyterlab
  - seaborn

# some packages need to be installed by pip
  - pip:
    - opentrons == 8.3.0

This results in the following error message:

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package pandas-1.0.5-py36hcc50265_0 requires python_abi 3.6.* *_cp36m, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ pandas 1.0.5  is installable with the potential options
│  ├─ pandas 1.0.5 would require
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pandas 1.0.5 would require
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pandas 1.0.5 would require
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  └─ pandas 1.0.5 conflicts with any installable versions previously reported;
└─ python >=3.10,<3.11  is not installable because there are no viable options
   ├─ python [3.10.0|3.10.1|...|3.10.9] would require
   │  └─ python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported;
   └─ python [3.10.0|3.10.10|...|3.10.9] conflicts with any installable versions previously reported.

The key libraries that seem to be incompatible are:
python 3.10
pandas 1.0.5
opentrons 8.3.0

Current behavior

It seems like version 8.3.0 of the robot software (which requires python >= 3.10) is not compatible with pandas version 1.0.5 (which requires python <= 3.8).

Expected behavior

The OT2 robot has a python environment that can be re-created on another computer.

It would be convenient if there was an automated way to do this, maybe a yaml file for venv or conda.

Operating system

None

System and robot setup or anything else?

I'm using an OT2 robot. I just upgraded it to app version 8.3.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions