Skip to content

[🐛 Bug]: Instructions for setting up a local development environment for Python need updating #15369

@cgoldberg

Description

@cgoldberg

What happened?

Does anyone know how to setup a local development environment for Python?

There are some outdated build instructions here:

... but they no longer work. I would like to get it working then update those instructions.

The goal:

I have the selenium repo cloned and all I want to be able to do is make some changes to the source code, then build the package so I can import it and use it. Ideally, it would be installed in editible mode, so I can work on the package without reinstalling it.

I can't use Bazel and all the selenium build machinery... I just want an isolated Python environment using standard Python tooling. I looked through the Bazel configs to see how it builds the Python bindings, but I can't figure out how to do the same outside of Bazel.

What I've tried:

After cloning the repo, I would think I could just create a virtual environment, install requirements, then install with pip in editible mode:

cd selenium/py python3 -m venv venv source ./venv/bin/activate pip install -r requirements.txt pip install -e . 

But this fails while building the package. It fails on the running build_rust step with the error:

distutils.errors.DistutilsFileError: can't find manifest for Rust extension `selenium.webdriver.common.selenium-manager` at path `Cargo.toml` 

Am I missing a step or some dependency?

Can anyone help me out?


How can we reproduce the issue?

Try to setup a local Python development environment.

Relevant log output

N/A

Operating System

Linux (Debian)

Selenium version

Python

What are the browser(s) and version(s) where you see this issue?

N/A

What are the browser driver(s) and version(s) where you see this issue?

N/A

Are you using Selenium Grid?

N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-needs-triagingA Selenium member will evaluate this soon!I-defectSomething is not working as intended

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions