Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t在OsX Mavericks上创建可导入的python模块_Python_Macos_Osx Mavericks - Fatal编程技术网

Can';t在OsX Mavericks上创建可导入的python模块

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 /

我编写了一个自定义python模块。它由几个按主题划分在3.py文件中的函数组成,这些文件都位于我的主目录中名为
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子模块。或其他各种