Can';t在OsX Mavericks上创建可导入的python模块
我编写了一个自定义python模块。它由几个按主题划分在3.py文件中的函数组成,这些文件都位于我的主目录中名为Can';t在OsX Mavericks上创建可导入的python模块,python,macos,osx-mavericks,Python,Macos,Osx Mavericks,我编写了一个自定义python模块。它由几个按主题划分在3.py文件中的函数组成,这些文件都位于我的主目录中名为microbiome的同一目录中。因此,我的自定义模块目录的整个路径是: /Users/drosophila/microbiome 我正在研究OsX小牛。我想在python脚本中导入这个模块,我从另一个目录运行它 我试图通过编辑/etc/paths将微生物组目录添加到路径中: sudo nano /etc/paths 然后在/etc/path中我写: /usr/bin /bin /
microbiome
的同一目录中。因此,我的自定义模块目录的整个路径是:
/Users/drosophila/microbiome
我正在研究OsX小牛。我想在python脚本中导入这个模块,我从另一个目录运行它
我试图通过编辑/etc/paths
将微生物组
目录添加到路径中:
sudo nano /etc/paths
然后在/etc/path
中我写:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Users/drosophila/blast-2.2.22/bin
/Users/drosophila/blast-2.2.22/
/Users/drosophila/microbiome
我还尝试编辑.bash\u profile
,如下所示:
export PATH="/Users/drosophila/microbiome:/Users/drosophila/anaconda/bin:$PATH"
“微生物组”目录似乎已成功添加到路径中,因为echo$path
显示该目录位于其中:
/Users/drosophilq/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usearch:/Users/drosophila/blast-2.2.22/bin:/Users/drosophila/blast-2.2.22/:/Users/drosophila/microbiome:/opt/X11/bin:/usr/texbin
然而,当我尝试在python中导入microbiome模块时,它坚持认为这样的模块不存在。我有Python 3.4.1 | Anaconda 2.0.1
“microbiome”目录包含一个空的\uuuu init\uuuu.py
文件
我做错了什么?正如您所发现的,
/etc/PATH
会影响$PATH
。但是,$PATH
不影响Python查找模块的位置。请尝试使用$PYTHONPATH
。有关详细信息,请参见manpython
。正如您所发现的,/etc/PATH
影响$PATH
。但是,$PATH
不影响Python查找模块的位置。请尝试使用$PYTHONPATH
。有关详细信息,请参见manpython
。正如您所发现的,/etc/PATH
影响$PATH
。但是,$PATH
不影响Python查找模块的位置。请尝试使用$PYTHONPATH
。有关详细信息,请参见manpython
。正如您所发现的,/etc/PATH
影响$PATH
。但是,$PATH
不影响Python查找模块的位置。请尝试使用$PYTHONPATH
。有关详细信息,请参见manpython
。正确的方法是创建一个基于setup.py
的项目
然后,您可以使用项目根目录中的pip3 install.
来安装任何特定Python安装(或虚拟环境)的代码。这样可以确保所有内容都以适当的布局复制到一些适当的站点包目录中,以便Python安装导入
试着去做标准工具自己做的事情只会让事情变得更困难
这就是说,如果您真的非常想,关键是您需要将新目录放入
sys.path
中,以便进行Python安装。修改路径
或/etc/PATH
不会这样做。修改PYTHONPATH
会影响,但会影响每次安装。方法是添加.pth
文件和/或sitecustomize.py
文件,如模块文档中所述
我不知道您的Anaconda站点包在哪里(您可以通过Python中的import sys;print(sys.path)找到),但假设它是/usr/local/Anaconda/lib/python3.4/site packages
。因此,您可以在该目录中创建一个microbiome.pth
文件,其中包含指向您的/Users/drosophilia/microbiome
目录的绝对路径。然后,每次启动Python时,该目录将被添加到sys.path
,导入将正常工作
还值得注意的是,如果您只想重用一个目录,就好像它是少数几个不同项目的一部分,而您甚至不想考虑“安装”之类的事情,那么有更简单的方法可以做到这一点:将目录符号链接到不同的项目中。或者,如果您使用的是版本控制,请创建git子模块。或各种其他类似等效物。然后,看起来每个项目都只包含
微生物组
,作为该项目的一部分,您不必担心路径或其他任何问题。正确的方法,如中所述,是创建一个基于setup.py
的项目
然后,您可以使用项目根目录中的pip3 install.
来安装任何特定Python安装(或虚拟环境)的代码。这样可以确保所有内容都以适当的布局复制到一些适当的站点包目录中,以便Python安装导入
试着去做标准工具自己做的事情只会让事情变得更困难
这就是说,如果您真的非常想,关键是您需要将新目录放入
sys.path
中,以便进行Python安装。修改路径
或/etc/PATH
不会这样做。修改PYTHONPATH
会影响,但会影响每次安装。方法是添加.pth
文件和/或sitecustomize.py
文件,如模块文档中所述
我不知道您的Anaconda站点包在哪里(您可以通过Python中的import sys;print(sys.path)找到),但假设它是/usr/local/Anaconda/lib/python3.4/site packages
。因此,您可以在该目录中创建一个microbiome.pth
文件,其中包含指向您的/Users/drosophilia/microbiome
目录的绝对路径。然后,每次启动Python时,该目录将被添加到sys.path
,导入将正常工作
还值得注意的是,如果您只想重用一个目录,就好像它是少数几个不同项目的一部分,而您甚至不想考虑“安装”之类的事情,那么有更简单的方法可以做到这一点:将目录符号链接到不同的项目中。或者,如果您使用的是版本控制,请创建git子模块。或其他各种