为Pylons上的Cookiecutters设置虚拟环境的等效窗口步骤是什么?

时间:2017-02-07 12:49:31

标签: windows python-3.x pyramid virtual-environment

我正在完成为Linux系统编写的Pyramid快速教程,我正在使用Windows,因此我将每个命令转换为Windows等效命令。

在教程步骤中:Quick Project Startup with Cookiecutters我遇到了以下问题:

在教程中编写的命令:,即对于linux

$VENV/bin/pip install cookiecutter

我在Windows中做了什么:

我用:

激活虚拟环境
c:\projects\quick_tutorial\env\Scripts\Activate

然后我使用Windows命令:

(env) c:\projects\quick_tutorial\env\Scripts\pip install cookiecutter

同样,我然后运行以下命令:

(env) c:\projects\quick_tutorial\env\Scripts\cookiecutter https://github.com/Pylons/pyramid-cookiecutter-starter

上面的命令在我的" ... env \ Scripts"中放置了一个新文件夹: cc_starter 。夹。我认为这没有意义,所以我将 cc_starter 移到c:\projects\quick_tutorial

此时我的目录如下:My Director,其中: (1)不包含" bin"夹;和 (2)没有" cc_starter" " env"内的文件夹夹。 < - 我认为这些是这个项目与虚拟环境在Linux和Windows之间应该以不同方式构建的两个主要区别

问题:

本教程步骤的最后一部分是运行:

$ env/bin/pserve development.ini --reload

^^ for Linux

我的Windows等价物:

(env) c:\projects\quick_tutorial\cc_starter\pserve development.ini --reload

这很遗憾地返回以下Traceback(最近一次调用最后一次):

  

文件" C:\ Python34 \ lib \ runpy.py",第170行,在_run_module_as_main中   " main ",mod_spec)文件" C:\ Python34 \ lib \ runpy.py",第85行,in   _run_code exec(code,run_globals)File" c:\ projects \ quick_tutorial \ env \ Scripts \ pserve.exe__main __。py",line   9,在文件中   " C:\ Python34 \ Lib \ site-packages \ pyramid \ scripts \ pserve.py",第60行,
  在main return command.run()文件中   " C:\ Python34 \ Lib \ site-packages \ pyramid \ scripts \ pserve.py",第371行,
  在运行global_conf = vars)文件   " C:\ Python34 \ Lib \ site-packages \ pyramid \ scripts \ pserve.py",406行,
  在loadapp中返回loadapp(app_spec,name = name,   relative_to = relative_to,** kw)文件   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第247行,
  在loadapp中返回loadobj(APP,uri,name = name,** kw)文件   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第271行,
  在loadobj global_conf = global_conf)文件中   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第296行,
  在loadcontext global_conf = global_conf)文件中   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第320行,
  在_loadconfig中返回loader.get_context(object_type,name,   global_conf)文件   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第454行,
  在get_context部分)文件   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第476行,
  在_context_from_use object_type中,name = use,   global_conf = global_conf)文件   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",406行,
  在get_context global_conf = global_conf)文件中   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第296行,
  在loadcontext global_conf = global_conf)文件中   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第328行,
  在_loadegg中返回loader.get_context(object_type,name,   global_conf)文件   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第620行,
  在get_context object_type中,name = name)文件   " C:\ Python34 \ Lib \ site-packages \ paste \ deploy \ loadwsgi.py",第640行,
  在find_egg_entry_point pkg_resources.require(self.spec)文件中   " C:\ Python34 \ Lib \ site-packages \ pkg_resources.py",第669行,中
  require needed = self.resolve(parse_requirements(requirements))
  文件" C:\ Python34 \ Lib \ site-packages \ pkg_resources.py",第572行,在中   解决提升DistributionNotFound(req)   pkg_resources.DistributionNotFound:cc-starter

(抱歉文本块,它是直接从命令提示符中复制的)

问题:

  1. 我是否需要运行"激活"正如我所做的那样,命令在Scripts文件夹中?
  2. env\Scripts文件夹是否相当于Linux中的env\bin
  3. 我打算移动" cc_starter文件夹"从quick_tutorial\env\Scripts开始并放入\quick_tutorial? (正如我所做的那样)
  4. 加载development.ini时,我需要做些什么来避免错误?

2 个答案:

答案 0 :(得分:0)

首先,有一个用于在Windows 10上安装cookiecutter的PR已经过测试(由我在VM中)。请参阅https://github.com/stevepiercy/cookiecutter/blob/99250649aa3f4ba77091a72fe5df42d7f59859e6/docs/installation.rst并ping cookiecutter的维护者以合并PR https://github.com/audreyr/cookiecutter/pull/887

  1. 我们不推荐activate。见http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/install.html#venv-bin-pip-vs-source-bin-activate

    而是使用设置为Path的环境变量,或使用可执行文件的完整路径调用命令。请参阅http://docs.pylonsproject.org/projects/pyramid/en/latest/quick_tutorial/requirements.html

  2. 足够近。对于Linux,请将/替换为\
  3. 此步骤不应移动任何文件夹或文件。
  4. 查看以前的项目。堆栈跟踪中的最后一行表示无法找到cc-starter包,原因是您重新定位了它,或者您跳转到activate,或两者兼而有之。

答案 1 :(得分:0)

发现问题了!在教程:Quick Project Startup with Cookiecutters中,我不清楚自己是否必须完成以下命令:

# Change directory into your newly created project.
$ cd cc_starter
# Create a new virtual environment...
$ python3 -m venv env
# ...where we upgrade packaging tools...
$ env/bin/pip install --upgrade pip setuptools
# ...and into which we install our project.
$ env/bin/pip install -e .

运行这些命令后,我能够成功完成教程。谢谢Steve Piercy的帮助。