Versión Pytest para Python 2.6.6 -- pytest campo con python-2.6 camp Relacionados El problema

Pytest version for Python 2.6.6


2
vote

problema

Español

Estoy tratando de configurar Pystest en Python 2.6.6 Rhel 6.10.

Como se señaló en Registro de cambios oficial pytest 3.3.0 No es compatible con Python 2.6 y, por lo tanto, se debe considerar pytest < 3.3 . Podría instalar con éxito el pytest=3.2.5 , pero cuando ejecuto una prueba simple, obtenga el siguiente error:

          foreach (DriveInfo drive in DriveInfo.GetDrives())         {             if (drive.IsReady && drive.Name == "E:\")             {                 if (drive.TotalFreeSpace < 10000000)                 {                     do                     {                         DirectoryInfo info = new DirectoryInfo(@"E:RECVideo");                         FileInfo[] files = info.GetFiles().OrderBy(p => p.LastWriteTime).ToArray();                         System.IO.File.Delete(@"E:RECVideo" + files[0].Name);                     }                     while (drive.TotalFreeSpace < 10000000);                 }             }         } 0  

Una búsqueda rápida sugirió que foreach (DriveInfo drive in DriveInfo.GetDrives()) { if (drive.IsReady && drive.Name == "E:\") { if (drive.TotalFreeSpace < 10000000) { do { DirectoryInfo info = new DirectoryInfo(@"E:RECVideo"); FileInfo[] files = info.GetFiles().OrderBy(p => p.LastWriteTime).ToArray(); System.IO.File.Delete(@"E:RECVideo" + files[0].Name); } while (drive.TotalFreeSpace < 10000000); } } } 11111 lleva a argumento en Python 2.7. Si este es el caso de la dependencia, ¿qué versión de Pytest se recomienda para Python 2.6.6?

Original en ingles

I am trying to set up pytest on Python 2.6.6 RHEL 6.10.

As pointed out in official change log pytest 3.3.0 doesn't support python 2.6 and hence pytest < 3.3 should be considered. I could successfully install the pytest=3.2.5, but when I execute a simple test I get the following error :

Traceback (most recent call last):   File "/usr/lib64/python2.6/runpy.py", line 122, in _run_module_as_main     "__main__", fname, loader, pkg_name)   File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code     exec code in run_globals   File "/usr/lib/python2.6/site-packages/pytest.py", line 17, in <module>     raise SystemExit(pytest.main())   File "/usr/lib/python2.6/site-packages/_pytest/config.py", line 57, in main     return config.hook.pytest_cmdline_main(config=config)   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__     return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec     return self._inner_hookexec(hook, methods, kwargs)   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda>     _MultiCall(methods, kwargs, hook.spec_opts).execute()   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute     res = hook_impl.function(*args)   File "/usr/lib/python2.6/site-packages/_pytest/main.py", line 127, in pytest_cmdline_main     return wrap_session(config, _main)   File "/usr/lib/python2.6/site-packages/_pytest/main.py", line 111, in wrap_session     config.notify_exception(excinfo, config.option)   File "/usr/lib/python2.6/site-packages/_pytest/config.py", line 936, in notify_exception     excinfo=excinfo)   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__     return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec     return self._inner_hookexec(hook, methods, kwargs)   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda>     _MultiCall(methods, kwargs, hook.spec_opts).execute()   File "/usr/lib/python2.6/site-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute     res = hook_impl.function(*args)   File "/usr/lib/python2.6/site-packages/_pytest/terminal.py", line 163, in pytest_internalerror     for line in py.builtin.text(excrepr).split("\n"):   File "/usr/lib/python2.6/site-packages/_pytest/_code/code.py", line 664, in __unicode__     self.toterminal(tw)   File "/usr/lib/python2.6/site-packages/_pytest/_code/code.py", line 709, in toterminal     self.reprtraceback.toterminal(tw)   File "/usr/lib/python2.6/site-packages/_pytest/_code/code.py", line 725, in toterminal     entry.toterminal(tw)   File "/usr/lib/python2.6/site-packages/_pytest/_code/code.py", line 748, in toterminal     tw.write("".join(self.lines))   File "/usr/lib/python2.6/site-packages/py/_io/terminalwriter.py", line 250, in write     self._update_chars_on_current_line(msg)   File "/usr/lib/python2.6/site-packages/py/_io/terminalwriter.py", line 262, in _update_chars_on_current_line     current_line = current_line.decode('utf-8', errors='replace') TypeError: decode() takes no keyword arguments   

A quick search suggested that decode() takes argument in python 2.7. If this is the case of dependence then which version of pytest is recommended for Python 2.6.6 ?

     

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

PYTEST == 3.2.5 es la versión que todavía es compatible con Python 2.6, sin embargo, solo porque Pytest == 3.2.5 es compatible con Python 2.6, no significa necesariamente que sus dependencias como los autores de la biblioteca especificados en su setup.py admite Python 2.6.

La mayoría de los paquetes especifica sus dependencias que utilizan un mayor que la restricción, por ejemplo. libxxx & gt; = 1.2.3, para asegurarse de que obtendrá automáticamente las versiones más recientes de las dependencias cuando el autor de las bibliotecas dependientes las soltó, pero nunca descargará una versión anterior incompatible. En la mayoría de los casos, esto es excelente, ya que reduce la carga de trabajo para los autores de la biblioteca, pero esto significa que si esa biblioteca dependía publicó una versión más nueva que descompone la compatibilidad con una versión en particular que la biblioteca dependiente sigue admite, lo que en la biblioteca dependiente se ajustará. , como no hay menos que la restricción para prevenir eso.

En este caso, de acuerdo con el rastreo que ha mostrado, la biblioteca Py.IO que se sacó no es compatible con Python 2.6. Tendrá que bajar degradando y pin Py.io a una versión anterior que todavía admite 2.6.

Según py.io changelog , la última versión que aún soporta Python 2.6 es Py.io == 1.4.34.

Si es importante para usted admitir un software antiguo, debe crear un archivo requisitos.txt para congelar la lista de dependencias en lugar de confiar en la resolución automática de la versión de los paquetes.

 

pytest==3.2.5 is the version that still supports Python 2.6, however just because pytest==3.2.5 supports Python 2.6, does not necessarily mean that its dependencies as the library authors specified in their setup.py supports Python 2.6.

Most packages specifies their dependencies using greater-than constraint, e.g. libxxx>=1.2.3, to ensure you'll automatically get newer versions of dependencies when the depended libraries author released them but you'll never download an incompatible older version. In most cases, this is great as it reduces the workload for the library's authors, but this means that if that depended library released a newer version that drops support for a particular version that the dependant library still supports, you'll be pulling that in, as there's no less-than constraint to prevent that.

In this case, according to the traceback you've shown, the py.io library that got pulled doesn't support python 2.6. You'll need to downgrade and pin py.io to an older version that still supports 2.6.

According to py.io changelog, the last version that still supports Python 2.6 is py.io==1.4.34.

If it's important for you to support an old software, you should create a requirements.txt file to freeze the list of dependencies rather than relying on the automatic version resolution from the packages.

 
 

Relacionados problema

1  Sedimpling Algunos plurales con Lemmatizer Wordnet no funcionan  ( Stemming some plurals with wordnet lemmatizer doesnt work ) 
Hola tengo un problema con NLTK (2.0.4): Estoy tratando de derivar la palabra "hombres" o "dientes", pero no parece funcionar. Aquí está mi código: An ex...

0  Dividir texto a CSV por otro delimitador, pero manteniendo la coma en cada columna  ( Split text to csv by other delimiter but maintaining the comma in each column ) 
Tengo un archivo txt que contiene tubería | Valores delimitados, pero desafortunadamente, he encontrado algunos errores, el DicTreader CSV asumió que la coma ...

-1  Encuentra el archivo particular con ruta  ( Find the particular file with path ) 
Cómo usar el comando ls para encontrar la ruta completa de los subbutistas ... ...

0  Cómo modificar la tabla en Hbase con ahorro de ahorro en Python  ( How to alter table in hbase using thrift in python ) 
Soy capaz de conectarme a HBase con un servidor de segunda mano en Python. Estoy siguiendo este tutorial: Conexión-Hbase-con- Python-Application-Uso-Thrift-S...

0  Hilos en pyqt4  ( Threads in pyqt4 ) 
Estoy haciendo una aplicación PYQT4 que llama Imagemagick y FFMPEG, pero se necesita demasiado para completar las tareas y me pregunto si hay una manera de im...

0  Interesante comportamiento de la cadena Llamada de procedimientos almacenados en MySQL  ( Interesting behavior of chain call of stored procedures in mysql ) 
Estoy usando MySQL 5.5, Python 2.6 y el paquete mysqldb lo que tengo: Procedimiento # 1 DROP PROCEDURE IF EXISTS log_create; DELIMITER $$ CREATE PROCE...

77  Cadenas aleatorias en Python 2.6 (¿Está bien?)  ( Random strings in python 2 6 is this ok ) 
He estado tratando de encontrar una forma más pitónica de generar una cadena aleatoria en Python que también puede escalar. Típicamente, veo algo similar a ...

4  Error de relación SQLALCHEMY: El objeto no tiene atributo 'C'  ( Sqlalchemy relationship error object has no attribute c ) 
He usado SQLAUTOCODE para generar mi modelo y todas las relaciones. Estoy tratando de hacer una consulta simple como tell worksheet 1 of active workbook...

0  ¿Cómo transformar los diccionarios que contengan listas a filas específicas?  ( How to transform dictionaries containing lists to specific rows ) 
Tengo guión de Python como: for row in file: .... .... .... whole_calendar = {} whole_calendar['ID'] = id whole_calendar['OPEN'] = ...

0  Scapy en Python 2.6 no funciona  ( Scapy on python 2 6 doesnt work ) 
Intento enviar paquete de red, pero cuando importe el módulo SCAPY, esta causa finalizó mi aplicación y no recibo ningún error ni excepciones con esto. Escr...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos