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

Stefan Miklosovic edited comment on CASSANDRA-18642 at 7/6/23 7:44 AM:
-----------------------------------------------------------------------

[~brandon.williams]

The solution might be to not ship cqlsh at all. If you look e.g. at Spark, 
their pyspark is packaged and delivered via pypi. I am not completely sure how 
pypi works but is not it Python agnostic, more or less? I mean that the 
delivery directly in rpm is just not optimal if we hit problems like these. 
What about "pip install cqlsh"? 

Also, if somebody is running Cassandra and their interaction with a cluster is 
purely programmatic via Java, for example, and cql shell is there for an 
operator administering it from some jump box only, then the Python stuff 
sitting on each node is actually not necessary at all. 

I am just shooting ideas here but bin/cqlsh script might install cqlsh pypi 
package when it is executed and it detects it is not there yet.


was (Author: smiklosovic):
[~brandon.williams]

The solution might be to not ship cqlsh at all. If you look e.g. at Spark, 
their pyspark is packaged and delivered via pypi. I am not completely sure how 
pypi works but is not it Python agnostic, more or less? I mean that the 
delivery directly in rpm is just not optimal if we hit problems like these. 
What about "pip install cqlsh"? 

Also, if somebody is running Cassandra and their interaction with a cluster is 
purely programmatic via Java, for example, and cql shell is there for an 
operator administering it from some jump box only, then the Python stuff 
sitting on each node is actually not necessary at all. 

> 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
>            Assignee: Brandon Williams
>            Priority: Normal
>             Fix For: 4.0.x, 4.1.x, 5.x
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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