Как идентичные установочные скрипты Python имеют разное поведение на разных Ubuntus?

Я отследил ошибку в проекте numba по различиям в установках Ubuntu. Я попытался воспроизвести ошибку в различных AMI для AWS в Ubuntu, и эта ошибка проявляется только в Ubuntu 14.04. Итак, мой вопрос: как получается, что один и тот же набор команд установки по-разному работает в разных установках Ubuntu? Возможно ли, что в каждой версии ubuntu установлены разные версии пакетов python, и есть ли способ проверить различия?

Я провел свой тест на:

Ubuntu 18.04 LTS [PASS] (ami-e3293383)
Ubuntu 16.04 LTS [PASS] (ami-43243a23)
Ubuntu 14.04 LTS [FAIL] (ami-e4293384)

Тест это:

cat > issue3027.py  # Test program

import sys
import numba


@numba.njit
def f0(a,b):
  return a+b


@numba.njit
def f1(begin1, end1, begin2, end2):
  if begin1 > begin2: return f1(begin2, end2, begin1, end1)
  return end1 + 1 >= begin2

sys.api_version, sys.stdout = 12345, None


print>>sys.stderr, sys.api_version, sys.stdout  # 12345, None
f0(0,1)      # Does not reassign stdout
print>>sys.stderr, sys.api_version, sys.stdout  # 12345, None
f1(0,1,2,3)  # Reassigned stdout
print>>sys.stderr, sys.api_version, sys.stdout  # 12345, file object


assert sys.api_version == 12345  # Pass. From which we can infer reload was not called
assert sys.stdout is None  # Fail. sys.stdout was assigned and not reset.

Тогда:

   sudo apt-get update --yes
   sudo apt-get install  --yes python2.7 python-pip python-dev
   sudo pip install pip==9.0.1
   sudo pip install 'enum34==1.1.6' 'funcsigs==1.0.2' 'llvmlite==0.23.2' 'numba==0.38.1' 'numpy==1.14.5' 'singledispatch==3.4.0.3' 'six==1.11.0'
   python2.7 issue3027.py  # Pass/Fail?
0
задан 21 June 2018 в 00:37

0 ответов

Другие вопросы по тегам:

Похожие вопросы: