Skip to contentSkip to conversation

*.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

PATCH New Xiao Yang 3 participants 13 messages Apr 26, 2018 – May 2, 2018

lore
Share & tools
lore

Xiao Yang

author
#0 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

Test it by running datafiles/in.py:
-----------------------------------
/usr/local/bin/python3
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
-----------------------------------

---
 execltp.in                                                | 2 +-
 testcases/commands/file/datafiles/in.py                   | 2 +-
 testcases/kernel/power_management/lib/pm_sched_mc.py      | 2 +-
 testcases/kernel/power_management/pm_cpu_consolidation.py | 2 +-
 testcases/kernel/power_management/pm_ilb_test.py          | 2 +-
 testcases/kernel/power_management/pm_sched_domain.py      | 2 +-
 testcases/network/nfsv4/acl/cleangroups.py                | 2 +-
 testcases/network/nfsv4/acl/cleanusers.py                 | 2 +-
 testcases/network/nfsv4/acl/create_users.py               | 2 +-
 testcases/network/nfsv4/acl/random_gen.py                 | 2 +-
 testcases/network/nfsv4/acl/setacl_stress.py              | 2 +-
 testcases/network/nfsv4/acl/test_acl.py                   | 2 +-
 testcases/network/nfsv4/acl/test_long_acl.py              | 2 +-
 testcases/network/nfsv4/locks/locktests.py                | 2 +-
 testcases/realtime/func/pi-tests/parse-testpi1.py         | 2 +-
 testcases/realtime/func/pi-tests/parse-testpi2.py         | 2 +-
 testcases/realtime/scripts/parser.py                      | 2 +-
 testcases/realtime/tools/ftqviz.py                        | 2 +-
 testscripts/build/ltp-missing-install-files.py            | 2 +-
 tools/pounder21/src/time_tests/drift-test.py              | 2 +-
 20 files changed, 20 insertions(+), 20 deletions(-)
execltp.in +1 -1
index 57e9c45..4b647cd 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 """
     An LTP [execution and] parsing wrapper.
 
testcases/commands/file/datafiles/in.py +1 -1
index 802e7bf..5fd48ce 100755
@@ -1,3 +1,3 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 
 print("This is a test.")
testcases/kernel/power_management/lib/pm_sched_mc.py +1 -1
index 3574330..743b6de 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' Reusable functions related to sched mc FVT are put together
 '''
 
testcases/kernel/power_management/pm_cpu_consolidation.py +1 -1
index ecd2e4f..a01db00 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' This Python script interprets various sched stats values.
     Validates cpu consolidation for given sched_mc_power_saving value
 '''
testcases/kernel/power_management/pm_ilb_test.py +1 -1
index 920c4e3..f207170 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' This Python script interprets interrupt values.
     Validates Ideal load balancer runs in same package where workload is running
 '''
testcases/kernel/power_management/pm_sched_domain.py +1 -1
index d5cd327..dddc481 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' This Python script validates sched domain information in dmesg
     with information in sysfs topology
 '''
testcases/network/nfsv4/acl/cleangroups.py +1 -1
index 11f8045..3c06478 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 from random_gen import *
 from optparse import OptionParser
 import subprocess
testcases/network/nfsv4/acl/cleanusers.py +1 -1
index f2597d2..3e652c5 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 from random_gen import *
 from optparse import OptionParser
 import subprocess
testcases/network/nfsv4/acl/create_users.py +1 -1
index 0dcaecb..3203aff 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
testcases/network/nfsv4/acl/random_gen.py +1 -1
index 37cb179..4b6ba96 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 import subprocess
 import random
 import re
testcases/network/nfsv4/acl/setacl_stress.py +1 -1
index 68a4932..c93ac8b 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists stressing script
 	To lauch on the first client
testcases/network/nfsv4/acl/test_acl.py +1 -1
index 612b9e4..8699b02 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
testcases/network/nfsv4/acl/test_long_acl.py +1 -1
index 79e3a96..893855b 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
testcases/network/nfsv4/locks/locktests.py +1 -1
index 80d8c20..9876a86 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # This script aims to help to run locktests with several clients.
 #
 # Report bugs to Vincent ROQUETA : [email protected]
testcases/realtime/func/pi-tests/parse-testpi1.py +1 -1
index 0631cce..740e7d1 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 ################################################################################
testcases/realtime/func/pi-tests/parse-testpi2.py +1 -1
index f11ff8a..69b2748 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 ################################################################################
testcases/realtime/scripts/parser.py +1 -1
index bc4512f..85226de 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 ################################################################################
testcases/realtime/tools/ftqviz.py +1 -1
index f331d33..5ac094c 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 
 #      Filename: ftqviz.py
 #        Author: Darren Hart <[email protected]>
testscripts/build/ltp-missing-install-files.py +1 -1
index 232028b..0f9d81c 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 #
 #    Script for determining items missing from LTP install based on the output
 #    log provided by runltp[lite.sh].
tools/pounder21/src/time_tests/drift-test.py +1 -1
index 0c25756..3fe8ba5 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 
 # Time Drift Script
 #		Periodically checks and displays time drift
Signature · 1 line
1.8.3.1
author
#1 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Quoted 10 lines · Xiao Yang

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

Test it by running datafiles/in.py:
-----------------------------------
/usr/local/bin/python3
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
-----------------------------------

Hi,

Sorry, the above output is not complete, please see the following output:
----------------------------------------------------------------------------

# which python3
/usr/local/bin/python3
# ./in.py
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
----------------------------------------------------------------------------

Thanks,
Xiao Yang

Quoted 223 lines
---
 execltp.in                                                | 2 +-
 testcases/commands/file/datafiles/in.py                   | 2 +-
 testcases/kernel/power_management/lib/pm_sched_mc.py      | 2 +-
 testcases/kernel/power_management/pm_cpu_consolidation.py | 2 +-
 testcases/kernel/power_management/pm_ilb_test.py          | 2 +-
 testcases/kernel/power_management/pm_sched_domain.py      | 2 +-
 testcases/network/nfsv4/acl/cleangroups.py                | 2 +-
 testcases/network/nfsv4/acl/cleanusers.py                 | 2 +-
 testcases/network/nfsv4/acl/create_users.py               | 2 +-
 testcases/network/nfsv4/acl/random_gen.py                 | 2 +-
 testcases/network/nfsv4/acl/setacl_stress.py              | 2 +-
 testcases/network/nfsv4/acl/test_acl.py                   | 2 +-
 testcases/network/nfsv4/acl/test_long_acl.py              | 2 +-
 testcases/network/nfsv4/locks/locktests.py                | 2 +-
 testcases/realtime/func/pi-tests/parse-testpi1.py         | 2 +-
 testcases/realtime/func/pi-tests/parse-testpi2.py         | 2 +-
 testcases/realtime/scripts/parser.py                      | 2 +-
 testcases/realtime/tools/ftqviz.py                        | 2 +-
 testscripts/build/ltp-missing-install-files.py            | 2 +-
 tools/pounder21/src/time_tests/drift-test.py              | 2 +-
 20 files changed, 20 insertions(+), 20 deletions(-)
execltp.in +1 -1
index 57e9c45..4b647cd 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 """
     An LTP [execution and] parsing wrapper.
 
testcases/commands/file/datafiles/in.py +1 -1
index 802e7bf..5fd48ce 100755
@@ -1,3 +1,3 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 
 print("This is a test.")
testcases/kernel/power_management/lib/pm_sched_mc.py +1 -1
index 3574330..743b6de 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' Reusable functions related to sched mc FVT are put together
 '''
 
testcases/kernel/power_management/pm_cpu_consolidation.py +1 -1
index ecd2e4f..a01db00 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' This Python script interprets various sched stats values.
     Validates cpu consolidation for given sched_mc_power_saving value
 '''
testcases/kernel/power_management/pm_ilb_test.py +1 -1
index 920c4e3..f207170 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' This Python script interprets interrupt values.
     Validates Ideal load balancer runs in same package where workload is running
 '''
testcases/kernel/power_management/pm_sched_domain.py +1 -1
index d5cd327..dddc481 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 ''' This Python script validates sched domain information in dmesg
     with information in sysfs topology
 '''
testcases/network/nfsv4/acl/cleangroups.py +1 -1
index 11f8045..3c06478 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 from random_gen import *
 from optparse import OptionParser
 import subprocess
testcases/network/nfsv4/acl/cleanusers.py +1 -1
index f2597d2..3e652c5 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 from random_gen import *
 from optparse import OptionParser
 import subprocess
testcases/network/nfsv4/acl/create_users.py +1 -1
index 0dcaecb..3203aff 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
testcases/network/nfsv4/acl/random_gen.py +1 -1
index 37cb179..4b6ba96 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 import subprocess
 import random
 import re
testcases/network/nfsv4/acl/setacl_stress.py +1 -1
index 68a4932..c93ac8b 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists stressing script
 	To lauch on the first client
testcases/network/nfsv4/acl/test_acl.py +1 -1
index 612b9e4..8699b02 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
testcases/network/nfsv4/acl/test_long_acl.py +1 -1
index 79e3a96..893855b 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 '''
 	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
testcases/network/nfsv4/locks/locktests.py +1 -1
index 80d8c20..9876a86 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # This script aims to help to run locktests with several clients.
 #
 # Report bugs to Vincent ROQUETA : [email protected]
testcases/realtime/func/pi-tests/parse-testpi1.py +1 -1
index 0631cce..740e7d1 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 ################################################################################
testcases/realtime/func/pi-tests/parse-testpi2.py +1 -1
index f11ff8a..69b2748 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 ################################################################################
testcases/realtime/scripts/parser.py +1 -1
index bc4512f..85226de 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 ################################################################################
testcases/realtime/tools/ftqviz.py +1 -1
index f331d33..5ac094c 100644
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 
 #      Filename: ftqviz.py
 #        Author: Darren Hart <[email protected]>
testscripts/build/ltp-missing-install-files.py +1 -1
index 232028b..0f9d81c 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 #
 #    Script for determining items missing from LTP install based on the output
 #    log provided by runltp[lite.sh].
tools/pounder21/src/time_tests/drift-test.py +1 -1
index 0c25756..3fe8ba5 100755
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 
 # Time Drift Script
 #		Periodically checks and displays time drift
#2 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Hi Xiao,

Quoted 6 lines · Xiao Yang
Quoted 4 lines

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

Quoted 6 lines

----------------------------------------------------------------------------

# which python3
/usr/local/bin/python3
# ./in.py
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
----------------------------------------------------------------------------

Indeed RHEL6.9GA still doesn't have python3 as normal package [1].

Couldn't it be solved by simple creating manually symlink python3 to /usr/bin ? I'm not against changing schebang to using env, if causing troubles. Cyril, what do you think?

It's funny that some distros already started removing python2 while still supported versions haven't properly added python3 yet :(.

Quoted 2 lines

Thanks,
Xiao Yang

Kind regards,
Petr

[1] https://distrowatch.com/table.php?distribution=redhat&pkglist=true&version=rhel-6.9#pkglist

author
#3 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Quoted 7 lines · Petr Vorel

Hi Xiao,

Quoted 5 lines · Xiao Yang
Quoted 4 lines

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

Quoted 7 lines
Quoted 6 lines

----------------------------------------------------------------------------

# which python3
/usr/local/bin/python3
# ./in.py
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
----------------------------------------------------------------------------

Indeed RHEL6.9GA still doesn't have python3 as normal package [1].

Hi Petr,

Currently, both RHEL6 and RHEL7 don't have python3 as normal package. I just install python3 on RHEL6 and RHEL7 manually.

Thanks,
Xiao Yang

Quoted 18 lines

Couldn't it be solved by simple creating manually symlink python3 to /usr/bin ? I'm not against changing schebang to using env, if causing troubles. Cyril, what do you think?

It's funny that some distros already started removing python2 while still supported versions haven't properly added python3 yet :(.

Quoted 2 lines

Thanks,
Xiao Yang

Kind regards,
Petr

[1] https://distrowatch.com/table.php?distribution=redhat&pkglist=true&version=rhel-6.9#pkglist

.

#4 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

In reply to Petr Vorel

Hi Xiao,

Quoted 6 lines
Quoted 5 lines · Xiao Yang
Quoted 4 lines

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

Quoted 6 lines
Quoted 6 lines

----------------------------------------------------------------------------

# which python3
/usr/local/bin/python3
# ./in.py
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
----------------------------------------------------------------------------

And is it really general RHEL6.9GA problem? Isn't it installable into standard path with EPEL? [1]

Quoted 9 lines

Couldn't it be solved by simple creating manually symlink python3 to /usr/bin ? I'm not against changing schebang to using env, if causing troubles. Cyril, what do you think?

It's funny that some distros already started removing python2 while still supported versions haven't properly added python3 yet :(.

Quoted 2 lines

Thanks,
Xiao Yang

Kind regards,
Petr

[1] https://unix.stackexchange.com/questions/343199/how-to-install-openvpn-client-on-rhel-7-3/343214#343214

author
#5 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Quoted 7 lines · Petr Vorel

Hi Xiao,

Quoted 5 lines
Quoted 5 lines · Xiao Yang
Quoted 4 lines

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

Quoted 8 lines
Quoted 6 lines
Quoted 6 lines

----------------------------------------------------------------------------

# which python3
/usr/local/bin/python3
# ./in.py
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
----------------------------------------------------------------------------

And is it really general RHEL6.9GA problem? Isn't it installable into standard path with EPEL? [1]

Hi Petr,

Neither, i just install python3 into /usr/local/bin by Python-3.6.5.tgz on purpose. :-P

Thanks,
Xiao Yang

Quoted 16 lines
Quoted 7 lines

Couldn't it be solved by simple creating manually symlink python3 to /usr/bin ? I'm not against changing schebang to using env, if causing troubles. Cyril, what do you think?
It's funny that some distros already started removing python2 while still supported versions haven't properly added python3 yet :(.

Quoted 2 lines

Thanks,
Xiao Yang

Kind regards,
Petr

[1] https://unix.stackexchange.com/questions/343199/how-to-install-openvpn-client-on-rhel-7-3/343214#343214

.

#6 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Hi Xiao,

Quoted 11 lines
Quoted 11 lines
Quoted 11 lines
Quoted 11 lines · Xiao Yang
Quoted 4 lines

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

----------------------------------------------------------------------------

# which python3
/usr/local/bin/python3
# ./in.py
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
----------------------------------------------------------------------------
Quoted 5 lines
Quoted 2 lines

And is it really general RHEL6.9GA problem? Isn't it installable into standard path with EPEL? [1]

Hi Petr,

Neither, i just install python3 into /usr/local/bin by Python-3.6.5.tgz on purpose. :-P

And what prevent you to use either python34 from EPEL (which installs into standard /usr/bin) or symlinking your compiled python3 into /usr/bin ?

Both are working solutions.

Quoted 2 lines

Thanks,
Xiao Yang

Kind regards,
Petr

author
#7 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Quoted 13 lines · Petr Vorel

Hi Xiao,

Quoted 11 lines
Quoted 11 lines
Quoted 11 lines
Quoted 11 lines · Xiao Yang
Quoted 4 lines

If we install python3 in specific path(/usr/local/bin) rather than the default(/usr/bin), the standard shebang(#!/usr/bin/python3) cannot interpreter python code due to wrong path. We should use env to search the correct path of python3 dynamically.

----------------------------------------------------------------------------

# which python3
/usr/local/bin/python3
# ./in.py
-bash: ./in.py: /usr/bin/python3: bad interpreter: No such file or directory
----------------------------------------------------------------------------
Quoted 8 lines
Quoted 4 lines
Quoted 2 lines

And is it really general RHEL6.9GA problem? Isn't it installable into standard path with EPEL? [1]

Hi Petr,
Neither, i just install python3 into /usr/local/bin by Python-3.6.5.tgz on purpose. :-P

And what prevent you to use either python34 from EPEL (which installs into standard /usr/bin) or symlinking your compiled python3 into /usr/bin ?

Both are working solutions.

Hi Petr,

Nothing prevent me to use either python34 or symlink.

In all kinds of cases, it is possible that python3 is not installed in the standard path. I think
we should adapt python code to enviroment instead of changing enviroment to adapt to code.
Do you think so?

Thanks,
Xiao Yang

Quoted 9 lines
Quoted 2 lines

Thanks,
Xiao Yang

Kind regards,
Petr

.

#8 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

In reply to Petr Vorel

Hi!

Quoted 3 lines

Couldn't it be solved by simple creating manually symlink python3 to /usr/bin ? I'm not against changing schebang to using env, if causing troubles. Cyril, what do you think?

Well if it's causing problems for our users we should go ahead and change the shebangs to /usr/bin/env python3.

Quoted 2 lines

It's funny that some distros already started removing python2 while still supported versions haven't properly added python3 yet :(.

That is why I think that we should avoid using python in LTP...

Signature · 2 lines
Cyril Hrubis
[email protected]
#9 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Hi Cyril,

Quoted 7 lines

Hi!

Quoted 3 lines

Couldn't it be solved by simple creating manually symlink python3 to /usr/bin ? I'm not against changing schebang to using env, if causing troubles. Cyril, what do you think?

Well if it's causing problems for our users we should go ahead and change the shebangs to /usr/bin/env python3.

Simple linking solves that:

# ln -s /usr/local/bin/python3 /usr/bin
And this problem occurs only if you compile python3 from sources (and there are packages for
all major distros, including RHEL 6.9, which Xiao used - in his case it's EPEL repository).

Still want to me to change shebang to '/usr/bin/env python3' ?

Kind regards,
Petr

#10 lore raw

PATCH 1/2 *.py: Replace '#!/usr/bin/python3' with '#!/usr/bin/env python3'

Hi Xiao,

Quoted 4 lines
Quoted 3 lines
Quoted 3 lines

Couldn't it be solved by simple creating manually symlink python3 to /usr/bin ? I'm not against changing schebang to using env, if causing troubles. Cyril, what do you think?

Quoted 8 lines
Quoted 2 lines

Well if it's causing problems for our users we should go ahead and change the shebangs to /usr/bin/env python3.

Simple linking solves that:

# ln -s /usr/local/bin/python3 /usr/bin
And this problem occurs only if you compile python3 from sources (and there are packages for
all major distros, including RHEL 6.9, which Xiao used - in his case it's EPEL repository).

Still want to me to change shebang to '/usr/bin/env python3' ?

Acked by Cyril => merged.
Thanks for your time!

Kind regards,
Petr

author
#11 lore raw

PATCH 2/2 commands/file01: Fix "python3" match failure

In reply to Xiao Yang

On some distros(e.g. RHEL6.9GA), we got the mismatched output by running 'file in.py':
----------------------------------------------
in.py: a /usr/bin/env python3 script text executable
----------------------------------------------

We just match both python and python3 to fix this issue.

---
 testcases/commands/file/file01.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
testcases/commands/file/file01.sh +2 -2
index e04b32e..5a81b3b 100755
@@ -84,8 +84,8 @@ do_test()
 	 7) file_test in.pl "[pP]erl script, ASCII text executable" \
 			    "[pP]erl script text executable" \
 			    "a /usr/bin/perl script text";;
-	 8) file_test in.py "[pP]ython script, ASCII text executable" \
-			    "[pP]ython script text executable";;
+	 8) file_test in.py "[pP]ython3\{0,1\} script, ASCII text executable" \
+			    "[pP]ython3\{0,1\} script text executable";;
 	 9) file_test in.m4 "M4 macro processor script, ASCII text" \
 			    "ASCII M4 macro language pre-processor text";;
 	10) file_test in "ELF .*-bit $TEST_ARCH executable, .*" \
Signature · 1 line
1.8.3.1
Applied
#12 lore raw

PATCH 2/2 commands/file01: Fix "python3" match failure

Hi Xiao,

Quoted 18 lines

On some distros(e.g. RHEL6.9GA), we got the mismatched output by running 'file in.py':
----------------------------------------------
in.py: a /usr/bin/env python3 script text executable
----------------------------------------------

We just match both python and python3 to fix this issue.

---
 testcases/commands/file/file01.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
testcases/commands/file/file01.sh +0 -0
index e04b32e..5a81b3b 100755

testcases/commands/file/file01.sh do_test() · line 87

Quoted 6 lines
testcases/commands/file/file01.sh +1 -2
@@ -84,8 +84,8 @@ do_test()
 	 7) file_test in.pl "[pP]erl script, ASCII text executable" \
 			    "[pP]erl script text executable" \
 			    "a /usr/bin/perl script text";;
-	 8) file_test in.py "[pP]ython script, ASCII text executable" \
-			    "[pP]ython script text executable";;
+	 8) file_test in.py "[pP]ython3\{0,1\} script, ASCII text executable" \

This one isn't needed, as problem is with file-5.04, which use the latter one, but let's keep it.

testcases/commands/file/file01.sh do_test() · line 91

Quoted 4 lines
testcases/commands/file/file01.sh +1 -0
+			    "[pP]ython3\{0,1\} script text executable";;
 	 9) file_test in.m4 "M4 macro processor script, ASCII text" \
 			    "ASCII M4 macro language pre-processor text";;
 	10) file_test in "ELF .*-bit $TEST_ARCH executable, .*" \

Merged, thanks!

Kind regards,
Petr