[ 
https://issues.apache.org/jira/browse/ARROW-2263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wes McKinney resolved ARROW-2263.
---------------------------------
    Resolution: Fixed

Issue resolved by pull request 1730
[https://github.com/apache/arrow/pull/1730]

> [Python] test_cython.py fails if pyarrow is not in import path (e.g. with 
> inplace builds)
> -----------------------------------------------------------------------------------------
>
>                 Key: ARROW-2263
>                 URL: https://issues.apache.org/jira/browse/ARROW-2263
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Python
>            Reporter: Wes McKinney
>            Assignee: Wes McKinney
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 0.9.0
>
>
> see 
> {code}
> $ py.test pyarrow/tests/test_cython.py 
> ===================================== test session starts 
> =====================================
> platform linux -- Python 3.6.4, pytest-3.4.1, py-1.5.2, pluggy-0.6.0
> rootdir: /home/wesm/code/arrow/python, inifile: setup.cfg
> collected 1 item                                                              
>                 
> pyarrow/tests/test_cython.py F                                                
>           [100%]
> ========================================== FAILURES 
> ===========================================
> _______________________________________ test_cython_api 
> _______________________________________
> tmpdir = local('/tmp/pytest-of-wesm/pytest-3/test_cython_api0')
>     @pytest.mark.skipif(
>         'ARROW_HOME' not in os.environ,
>         reason='ARROW_HOME environment variable not defined')
>     def test_cython_api(tmpdir):
>         """
>         Basic test for the Cython API.
>         """
>         pytest.importorskip('Cython')
>     
>         ld_path_default = os.path.join(os.environ['ARROW_HOME'], 'lib')
>     
>         test_ld_path = os.environ.get('PYARROW_TEST_LD_PATH', ld_path_default)
>     
>         with tmpdir.as_cwd():
>             # Set up temporary workspace
>             pyx_file = 'pyarrow_cython_example.pyx'
>             shutil.copyfile(os.path.join(here, pyx_file),
>                             os.path.join(str(tmpdir), pyx_file))
>             # Create setup.py file
>             if os.name == 'posix':
>                 compiler_opts = ['-std=c++11']
>             else:
>                 compiler_opts = []
>             setup_code = setup_template.format(pyx_file=pyx_file,
>                                                compiler_opts=compiler_opts,
>                                                test_ld_path=test_ld_path)
>             with open('setup.py', 'w') as f:
>                 f.write(setup_code)
>     
>             # Compile extension module
>             subprocess.check_call([sys.executable, 'setup.py',
> >                                  'build_ext', '--inplace'])
> pyarrow/tests/test_cython.py:90: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ _ _ _ _ _ _ _ _
> popenargs = (['/home/wesm/miniconda/envs/arrow-dev/bin/python', 'setup.py', 
> 'build_ext', '--inplace'],)
> kwargs = {}, retcode = 1
> cmd = ['/home/wesm/miniconda/envs/arrow-dev/bin/python', 'setup.py', 
> 'build_ext', '--inplace']
>     def check_call(*popenargs, **kwargs):
>         """Run command with arguments.  Wait for command to complete.  If
>         the exit code was zero then return, otherwise raise
>         CalledProcessError.  The CalledProcessError object will have the
>         return code in the returncode attribute.
>     
>         The arguments are the same as for the call function.  Example:
>     
>         check_call(["ls", "-l"])
>         """
>         retcode = call(*popenargs, **kwargs)
>         if retcode:
>             cmd = kwargs.get("args")
>             if cmd is None:
>                 cmd = popenargs[0]
> >           raise CalledProcessError(retcode, cmd)
> E           subprocess.CalledProcessError: Command 
> '['/home/wesm/miniconda/envs/arrow-dev/bin/python', 'setup.py', 'build_ext', 
> '--inplace']' returned non-zero exit status 1.
> ../../../miniconda/envs/arrow-dev/lib/python3.6/subprocess.py:291: 
> CalledProcessError
> ------------------------------------ Captured stderr call 
> -------------------------------------
> Traceback (most recent call last):
>   File "setup.py", line 7, in <module>
>     import pyarrow as pa
> ModuleNotFoundError: No module named 'pyarrow'
> ================================== 1 failed in 0.23 seconds 
> ===================================
> {code}
> I encountered this bit of brittleness in a fresh install where I had not run 
> {{setup.py develop}} nor {{setup.py install}} on my local pyarrow dev area



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to