Bug 2227011

Summary: dstat fails to run when account has anaconda/conda python environment setup: ModuleNotFoundError: No module named 'pcp'
Product: Red Hat Enterprise Linux 9 Reporter: daryl herzmann <akrherz>
Component: pcpAssignee: Nathan Scott <nathans>
Status: ASSIGNED --- QA Contact: Jan Kurik <jkurik>
Severity: low Docs Contact: Jacob Taylor Valdez <jvaldez>
Priority: low    
Version: CentOS StreamCC: bstinson, jkurik, jwboyer, nathans, scox
Target Milestone: rcKeywords: Bugfix, Triaged
Target Release: 9.4   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

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.