Bug 2227011 - dstat fails to run when account has anaconda/conda python environment setup: ModuleNotFoundError: No module named 'pcp'
Summary: dstat fails to run when account has anaconda/conda python environment setup: ...
Keywords:
Status: ASSIGNED
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: pcp
Version: CentOS Stream
Hardware: All
OS: All
low
low
Target Milestone: rc
: 9.4
Assignee: Nathan Scott
QA Contact: Jan Kurik
Jacob Taylor Valdez
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-07-27 12:43 UTC by daryl herzmann
Modified: 2023-07-30 23:44 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-163682 0 None None None 2023-07-27 12:46:07 UTC
Red Hat Issue Tracker RHELPLAN-163683 0 None None None 2023-07-27 12:46:11 UTC

Description daryl herzmann 2023-07-27 12:43:06 UTC
Description of problem:

A user can not run `dstat` when configured to use its own python installation, for example, from anaconda.  The error received is:

$ dstat
Traceback (most recent call last):
  File "/usr/bin/dstat", line 30, in <module>
    from pcp import pmapi, pmconfig
ModuleNotFoundError: No module named 'pcp'

for some reason pmpython is not using platform python, but the user's local python

$ which pmpython
/usr/bin/pmpython
$ pmpython
Python 3.11.4 | packaged by conda-forge | (main, Jun 10 2023, 18:08:17) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.


Version-Release number of selected component (if applicable):

pcp-system-tools-6.0.4-2.el9.x86_64

How reproducible: 100%


Steps to Reproduce:
1. install anaconda python
2. conda activate env
3. dstat

Comment 1 Nathan Scott 2023-07-27 22:43:00 UTC
Thanks for reporting the issue.  What does this command report?

grep PCP_PYTHON_PROG /etc/pcp.conf
rpm -qa | grep pcp | grep python


The first should be indicating the system python, and this is what pmpython uses.

cheers.

Comment 2 daryl herzmann 2023-07-28 02:06:17 UTC
Thank you for the response.

$ grep PCP_PYTHON_PROG /etc/pcp.conf
PCP_PYTHON_PROG=python3
$ rpm -qa | grep pcp | grep python
python3-pcp-6.0.5-1.el9.x86_64
$ which python3
/opt/miniconda3/envs/prod/bin/python3

I thought there was a mechanism to specify "platform python", but am not seeing it now.  It seems like dstat should be hardcoding to /usr/bin/python3 as python3-pcp installs into /usr/lib64/python3.9/site-packages

Comment 3 Nathan Scott 2023-07-30 23:44:05 UTC
Thanks Daryl.

For PCP, you can specify the python version to be used across all PCP tools in /etc/pcp.conf - so quickest workaround for you here is to just do that for now.

Longer term though I agree a fixed-path specification would be for the best, I'll get that change made in an upcoming release.

cheers.


Note You need to log in before you can comment on or make changes to this bug.