[ 
https://issues.apache.org/jira/browse/CASSANDRA-18642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17739037#comment-17739037
 ] 

Stefan Miklosovic commented on CASSANDRA-18642:
-----------------------------------------------

OK this is interesting,

so nothing has to be done in cqlsh.py but Amazon Linux has this directories as 
site packages:

{code}
python3 -m site
sys.path = [
    '/home/ec2-user',
    '/usr/lib64/python39.zip',
    '/usr/lib64/python3.9',
    '/usr/lib64/python3.9/lib-dynload',
    '/usr/lib64/python3.9/site-packages',
    '/usr/lib/python3.9/site-packages',
]
{code}

But 4.1.2 installed it into /usr/lib/python3.6/site-packages

There is no python3.6 in my system.

{code}
[ec2-user@ip-172-31-27-5 ~]$ python3 --version
Python 3.9.16
[ec2-user@ip-172-31-27-5 ~]$ python3.9 --version
Python 3.9.16
[ec2-user@ip-172-31-27-5 ~]$ python --version
-bash: python: command not found
[ec2-user@ip-172-31-27-5 ~]$ python3.6 --version
-bash: python3.6: command not found
{code}

> cqlsh on Cassandra 4.1.2 fails on Amazon Linux 
> -----------------------------------------------
>
>                 Key: CASSANDRA-18642
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18642
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL/Interpreter, Packaging
>            Reporter: Stefan Miklosovic
>            Priority: Normal
>
> I am on the newest Amazon Linux Version 2023.1.20230629
> When I install cassandra-4.1.2 from Yum repository, it starts fine but cqlsh 
> prints this:
> {code}
> [ec2-user@ip-172-31-27-5 ~]$ cqlsh
> Traceback (most recent call last):
>   File "/usr/bin/cqlsh.py", line 148, in <module>
>     from cqlshlib import cql3handling, pylexotron, sslhandling, 
> cqlshhandling, authproviderhandling
> ModuleNotFoundError: No module named 'cqlshlib'
> {code}
> If I change in /usr/bin/cqlsh.py
> {code}
> cqlshlibdir = os.path.join(CASSANDRA_PATH, 'pylib')
> {code}
> to this
> {code}
> cqlshlibdir = os.path.join('/usr/lib/python3.6', 'site-packages')
> {code}
> it works.
> I am not sure if this is the correct way to handle that as not everybody has 
> python3.6. There is also no symlink pointing to this. I guess we would need 
> to find where packages are for Python we are going to use in cassandra.spec 
> and then change cqlsh.py to reflect that?
> {code}
> [ec2-user@ip-172-31-27-5 /]$ sudo find -type d -name site-packages
> ./usr/lib/python3.9/site-packages
> ./usr/lib/python3.6/site-packages
> ./usr/lib64/python3.9/site-packages
> {code}
> I think we need to pass whatever this (1) expands to here (2)
> (1) https://github.com/apache/cassandra/blob/trunk/redhat/cassandra.spec#L167
> (2) https://github.com/apache/cassandra/blob/trunk/bin/cqlsh.py#L78



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to