Description
Describe your environment
This report should be reproducible on any platform.
Mine is Fedora Linux 34 with Python 3.9.6, setuptools 53.0.0, pip 21.0.1, and no other potentially-relevant pre-installed dependencies. (I can also reproduce on Fedora Rawhide with Python 3.10.0rc1, setuptools 57.4.0, pip 21.1.3.)
I am using version 1.4.1 of opentelemetry-python.
Steps to reproduce
$ python3 -m venv _e
$ . _e/bin/activate
(_e) $ pip install opentelemetry-exporter-zipkin
Collecting opentelemetry-exporter-zipkin
[…]
Successfully installed Deprecated-1.2.12 certifi-2021.5.30 charset-normalizer-2.0.4 idna-3.2 opentelemetry-api-1.4.1 opentelemetry-exporter-zipkin-1.4.1 opentelemetry-exporter-zipkin-json-1.4.1 opentelemetry-exporter-zipkin-proto-http-1.4.1 opentelemetry-instrumentation-0.23b2 opentelemetry-sdk-1.4.1 opentelemetry-semantic-conventions-0.23b2 protobuf-3.17.3 requests-2.26.0 six-1.16.0 urllib3-1.26.6 wrapt-1.12.1
WARNING: You are using pip version 21.0.1; however, version 21.2.3 is available.
[…]
(_e) $ find _e/lib/python3.9/site-packages/src/
_e/lib/python3.9/site-packages/src/
_e/lib/python3.9/site-packages/src/opentelemetry
_e/lib/python3.9/site-packages/src/opentelemetry/exporter
_e/lib/python3.9/site-packages/src/opentelemetry/exporter/zipkin
_e/lib/python3.9/site-packages/src/opentelemetry/exporter/zipkin/version.py
_e/lib/python3.9/site-packages/src/opentelemetry/exporter/zipkin/__pycache__
_e/lib/python3.9/site-packages/src/opentelemetry/exporter/zipkin/__pycache__/version.cpython-39.pyc
Repeat for opentelemetry-exporter-jaeger
and opentelemetry-exporter-otlp
.
What is the expected behavior?
All OpenTelemetry Python packages are installed under the opentelemetry
namespace package (<SITE_PACKAGES>/opentelemetry
).
What is the actual behavior?
The opentelemetry-exporter-jaeger
, opentelemetry-exporter-otlp
, and opentelemetry-exporter-zipkin
“convenience” packages are installed under a src
namespace mirroring the repository structure (<SITE_PACKAGES>/src/opentelemetry
).
All others, including the exporter implementations (e.g. opentelemetry-exporter-jaeger-proto-grpc
) are correctly installed under opentelemetry
.
Additional context
It’s likely this has not been noticed since the actual implementations install in the correct path, and the convenience packages provide almost no functionality of their own. For example, opentelemetry-exporter-zipkin
only offers the string opentelemetry.exporter.zipkin.version.__version__
.
Compared to other packages in opentelemetry-python
, these are missing:
[options]
package_dir=
=src
[options.packages.find]
where = src
in setup.cfg
. Adding those lines seems to resolve the problem.