[
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)