2017-05-01 45 views
0

我想創建一個conda包來分發python工具。該工具的一部分是cythonized,它可以完美的使用python setup.py install。 我正確地創建了tar,但是當我嘗試安裝它時,軟件包不包含鏈接python導入和.so文件的.py文件。 因此,當我嘗試導入該包時,我找不到一個模塊。康達構建和cython問題

唯一想到的是我在cython和conda中發現的是在meta.yaml的構建/運行部分中引入了cython需求,但我不知道爲什麼不包含這些.py文件。

這是我meta.yaml

package: 
    name: project 
    version: 1.0.0 
source: 
    path: /home/user/project 
requirements: 
    build: 
    - python >=2.7 
    - jinja2 
    - numpy 
    - scipy 
    - matplotlib 
    - pysam 
    - setuptools 
    - h5py 
    - cython 
    run: 
    - python >=2.7 
    - jinja2 
    - numpy 
    - scipy 
    - matplotlib 
    - pysam >=0.8 
    - setuptools 
    - h5py 
    - cython 
build: 
    preserve_egg_dir: True 
    entry_points: 
    - exec_file = project.run_exec:main 
about: 
    license: GPL3 
    summary: "PROJECT" 

我setup.py文件看起來像

from setuptools import setup, find_packages 
from distutils.core import Extension 
from Cython.Build import cythonize 


extensions = [Extension('project.src.norm', ['project/src/norm.pyx'])] 

setup(
    name="PROJECT", 
    packages=find_packages(), 
    version="1.0.0", 
    description="PROJECT", 
    author='Lab', 
    author_email='email', 
    url='http://', 
    license='LICENSE.txt', 
    include_package_data=True, 
    entry_points={'console_scripts': ['exec_file = project.run_exec:main']}, 
    zip_safe=False, 
    ext_modules=cythonize(extensions), 
    classifiers=[ 
     'Development Status :: 4 - Beta', 
     'Environment :: Console', 
     'Intended Audience :: Bioinformaticians', 
     'License :: OSI Approved :: BSD License', 
     'Operating System :: MacOS', 
     'Operating System :: Microsoft :: Windows', 
     'Operating System :: POSIX', 
     'Programming Language :: Python :: 2.7', 
    ] 
) 

目錄結構是

project/ 
    setup.py 
    __init__.py 
    MANIFEST.in 
    requirements.txt 
    README.md 
    info/ 
     meta.yaml 
     build.sh 
     bld.bat 
    project/ 
     src/ 
      norm.pyx 
     run_exec.py 
    subproject/ 
     <etc...> 

編輯: 今天我試着使用Python setup.py bdist_conda,但行爲相同,或者是conda問題,或者是具體問題在我的配置。
如果是這種情況,我猜是setup.py ....

+1

我認爲缺少的重要信息是你的目錄結構和你的setup.py文件。 – DavidW

+0

我編輯了添加您所說的信息的帖子。感謝您的幫助 – jvaquero

+0

' - setuptools - h5py - cython'可能不需要_run_包 –

回答

0

我確實發現問題出在我的環境中。我定義了一個PYTHONPATH變量,它使得conda錯誤地生成了包。而不是去構建包,它直接導入我的源代碼。刪除PYTHONPATH問題已解決。