Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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
Python开发模块路径_Python_Git - Fatal编程技术网

Python开发模块路径

Python开发模块路径,python,git,Python,Git,在开发应用程序并在应用程序本地git clone目录下工作时,我设置了一个模块开发版本(在其git clone目录下)的链接。我这样做是为了在development dir中运行应用程序时调用模块的开发版本(通常是在同一时间开发的)。我只是为mymodule.py添加了一个.gitignore,这样就可以了 但我不喜欢这样。因此,我一直在试图找到一种方法,使mymodule.py从开发路径而不是安装发布版本的python模块路径中获取。任何人做这样的事情或有一个建议 dev/myapp/mya

在开发应用程序并在应用程序本地git clone目录下工作时,我设置了一个模块开发版本(在其git clone目录下)的链接。我这样做是为了在development dir中运行应用程序时调用模块的开发版本(通常是在同一时间开发的)。我只是为mymodule.py添加了一个.gitignore,这样就可以了

但我不喜欢这样。因此,我一直在试图找到一种方法,使mymodule.py从开发路径而不是安装发布版本的python模块路径中获取。任何人做这样的事情或有一个建议

 dev/myapp/myapp -> import mymodule
   -from here-
 dev/mymodule/mymodule.py
   -not here-
 /usr/lib/python2.7/site-packages/mymodule.py

可以设置环境变量以指定不同位置的检入顺序。只需将开发版本放在第一位。

您可以设置环境变量以指定不同位置的签入顺序。只需将开发版本放在第一位。

只需使用
virtualenv
。谷歌


如果工作量太大,您也可以使用
virtualenvwrapper
,它可以更简单地管理您的
virtualenv
s

只需使用
virtualenv
。谷歌


如果工作量太大,您也可以使用
virtualenvwrapper
,它可以更简单地管理您的
virtualenv
s

为了跟进@forival所说的内容,我相信
virtualenv
会解决您的问题

您可以创建一个开发环境,并在其中安装所有依赖项。这将使您不必手动操作python路径

  • virtualenv/path/to/env/
    -将创建一个新的env
  • 之后,您需要“激活”您的环境
    source/path/to/env/bin/activate

  • 现在您正在使用一个单独的干净python环境。您可以直接从git签出依赖项并使用
    pip
    安装它们!!!如果使用settuptools,您可以创建一个开发鸡蛋。

    为了跟进@forivall所说的内容,我相信
    virtualenv
    将解决您的问题

    您可以创建一个开发环境,并在其中安装所有依赖项。这将使您不必手动操作python路径

  • virtualenv/path/to/env/
    -将创建一个新的env
  • 之后,您需要“激活”您的环境
    source/path/to/env/bin/activate

  • 现在您正在使用一个单独的干净python环境。您可以直接从git签出依赖项并使用
    pip
    安装它们!!!如果使用settuptools,您可以创建一个开发鸡蛋。

    我只是通读了一遍,不知道它是如何工作的?你有一个例子吗?我发现了这个,这是一个很好的演练,我只是通读了一遍,我不知道这是怎么回事?你们有一个例子吗?我发现了这个,这是一个很好的演示,所以你们只需要在开发时调整PYTHONPATH?我不希望这是一个全局PYTHONPATH,因为如果应用程序在development dir之外运行,我希望安装的模块版本能够运行。您可以同时执行
    PYTHONPATH=BLAH python somefile.py
    。我通常会让我的makefile为我设置,然后我会做一些像“makedev”之类的事情来启动dev环境
    virtualenv
    听起来也是一个不错的答案。所以您在开发时只需调整PYTHONPATH?我不希望这是一个全局PYTHONPATH,因为如果应用程序在development dir之外运行,我希望安装的模块版本能够运行。您可以同时执行
    PYTHONPATH=BLAH python somefile.py
    。我通常会让我的makefile为我设置,然后我会做一些像“makedev”之类的事情来启动dev环境
    virtualenv
    听起来也是个不错的答案。因此,这在目录中设置了一个virtualenv say myvs。/myvs这是一个很酷的起点。但是有没有一种方法可以将dir添加到这个virtualenv的路径中呢?当你使用
    sys.PATH.append
    时,它应该添加到你激活的virtualenv的路径中,而不是你的系统python安装。就像我对@forivall wow说的,我喜欢virtualenv,我现在正在这个应用程序开发中使用它。然而,您的sys.path.append让我思考了一下,我最终只使用了一个'if os.path.basename(os.getcwd())==PrgName:sys.path.insert(0,DevPathToMyModule),在导入mymode调用之前,您可以运行
    settuptools
    ?为您的项目创建一个
    setup.py
    文件非常容易,这将允许您运行
    python setup.py develope
    ,它会自动创建应用程序的开发版本并将其放在pythonpath上,无需手动操作pythonpath,因此这将在目录中设置一个virtualenv,比如myvs./myvs,这是一个很酷的起点。但是有没有一种方法可以将dir添加到这个virtualenv的路径中呢?当你使用
    sys.PATH.append
    时,它应该添加到你激活的virtualenv的路径中,而不是你的系统python安装。就像我对@forivall wow说的,我喜欢virtualenv,我现在正在这个应用程序开发中使用它。然而,您的sys.path.append让我思考了一下,我最终只使用了一个'if os.path.basename(os.getcwd())==PrgName:sys.path.insert(0,DevPathToMyModule),在导入mymode调用之前,您可以运行
    settuptools
    ?为您的项目创建
    setup.py
    文件非常容易,这将允许您运行
    python setup.py develope
    ,它自动创建应用程序的开发版本并将其放在pythonpath上,而无需手动操作pythonpath